wpf data-binding eventtrigger

wpf - ¿Cómo puedo configurar selectivamente la "Visibilidad" de un TabItem mediante DataBinding/Triggers?



data-binding eventtrigger (2)

Bueno, no puedes hacer eso usando disparadores (no a menos que estés dentro de un DataTemplate, ControlTemplate o un Style).

Puede hacerlo utilizando un enlace, deberá escribir un ValueConverter personalizado que se traducirá entre 0/1 a Visible / Hidden y luego podrá enlazar la propiedad Visibility a la propiedad BlhaType.

O simplemente puede establecer la Visibilidad en el código y renunciar a un enfoque basado en XAML (que lo que habría hecho).

Tengo una pestaña que debería ocultarse si una propiedad (BlahType) está configurada en 1 y se muestra si está configurada en 0. Esto es lo que QUIERO hacer:

<TabItem Header="Blah"> <TabItem.Triggers> <DataTrigger Binding="{Binding BlahType}" Value="0"> <Setter Property="TabItem.Visibility" Value="Hidden" /> </DataTrigger> </TabItem.Triggers> </TabItem>

El problema es que obtengo este error:

"Triggers collection members must be of type EventTrigger"

Si busca ese error, verá que el Dr. WPF explica el error . ¿Hay una manera limpia de hacer lo que estoy tratando de lograr aquí?


Creo que la colección Triggers de un control solo es compatible actualmente con EventTriggers. Si desea utilizar DataTrigger, simplemente colóquelo dentro de un estilo, para su ejemplo:

<TabItem Header="Blah"> <TabItem.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding BlahType}" Value="0"> <Setter Property="TabItem.Visibility" Value="Hidden" /> </DataTrigger> </Style.Triggers> </Style> </TabItem.Style> </TabItem>