2010-05-12 11 views
8

utilizo este estilo para todos mis etiquetasfuente de actualización con TemplateBinding

<Style TargetType="Label" x:Key="LabelStyle"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Label"> 
        <StackPanel Orientation="Horizontal" > 
         <TextBox Loaded="MyTextBlock_Loaded" x:Name="EditControl" Visibility="Collapsed" Text="{TemplateBinding Tag}" /> 
         <Label Content="{TemplateBinding Content}" Grid.Column="1" Grid.Row="1"> 
         </Label> 
        </StackPanel> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

y mi etiqueta de la muestra

<Label Grid.Column="0" Grid.Row="0" Content="Photo" Style="{StaticResource LabelStyle}" Tag="{Binding fieldsCode.firstName, UpdateSourceTrigger=PropertyChanged}"/> 

Pero siento que TemplateBiding no admite la actualización de la propiedad. ¿Cómo se puede resolver este problema?

Respuesta

1

Si desea un enlace unidireccional desde ControlTemplate a una propiedad de su elemento primario con plantilla, use {TemplateBinding}. Para todos los otros escenarios utilizan {Binding} en su lugar:

<TextBox Loaded="MyTextBlock_Loaded" x:Name="EditControl" Visibility="Collapsed" Text="{Binding Tag, Mode=TwoWay}" />

+0

{Tag Encuadernación, RelativeSource = {RelativeSource TemplatedParent}, Modo = TwoWay} –

27

Prueba esto para la unión

Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag, Mode=TwoWay}" 
+0

Veer es bidireccional funciona como unidireccional, ¿debo usar UpdateSourceTrigger en TextBox o en Label? Implemento INotifierPropertyChanged en mi clase, qué propiedad utilizo en el enlace de etiquetas – Polaris

+0

Veer ¿es posible que la propiedad Etiqueta de Etiqueta no permita el cambio de datos? – Polaris

+0

@ Polaris: Acabo de ver el UpdateSourceTrigger en la etiqueta de tu etiqueta, que no es obligatorio. Si es necesario, debe estar en el objetivo, es decir, en el cuadro de texto, ya que se usa para propagar los cambios del objetivo a la fuente. De forma predeterminada, en el enlace bidireccional (verifique mi edición), los cambios del objetivo (cuadro de texto) se propagarán a la fuente cuando pierda el foco. Si realmente desea que los cambios se propaguen en el intercambio de texto, en su lugar, debe agregar el activador de fuente de actualizaciones al cuadro de texto. – Amsakanna

Cuestiones relacionadas