En mi aplicación, tengo un TextBox que quiero habilitar/deshabilitar en base a una enumeración en mi contexto de datos. La enumeración tiene tres valores (Cualquiera, Yo, Alguien) y quiero habilitar el Cuadro de texto cuando se establece el valor "Alguien". Puedo hackear una solución estableciendo el valor en reversa (ver a continuación). Sin embargo, ¿alguien puede explicar por qué la primera solución no funcionó?¿Por qué no puedo usar DataTrigger para establecer TextBox.IsEnabled = True?
Esto no funciona ...
<TextBox Text="{Binding ModifiedUser, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="False">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding ModifiedBy}"
Value="Someone">
<Setter Property="IsEnabled"
Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
Curiosamente, este código hace trabajo.
<TextBox Text="{Binding ModifiedUser, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding ModifiedBy}"
Value="Anyone">
<Setter Property="IsEnabled"
Value="False" />
</DataTrigger>
<DataTrigger Binding="{Binding ModifiedBy}"
Value="Me">
<Setter Property="IsEnabled"
Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
Gracias! Sabía que me estaba perdiendo algo – Nescio
Todays lesson to me :-) – dba