Dot-Net
DataTrigger 未觸發
我有以下 xaml:
<DockPanel> <DockPanel> <CheckBox IsChecked="{Binding Path=Test}" /> <CheckBox IsChecked="{Binding Path=Test}" /> </DockPanel> <DockPanel DockPanel.Dock="Left" Width="10" Background="Blue"> <DockPanel.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding Path=Test}" Value="True"> <Setter Property="DockPanel.Background" Value="Yellow" /> </DataTrigger> </Style.Triggers> </Style> </DockPanel.Style> </DockPanel> </DockPanel>現在 - 2 個複選框正確連結 - 檢查一個將檢查另一個 - 但數據觸發器根本沒有觸發。
我究竟做錯了什麼?
這裡的問題是Property Value Precedence。
您目前直接在 DockPanel 上將背景設置為藍色。此顯式屬性將覆蓋觸發器設置的任何值。
相反,您必須將原始“背景”設置為樣式中的設置器。
<DockPanel DockPanel.Dock="Left" Width="10"> <DockPanel.Style> <Style> <Setter Property="DockPanel.Background" Value="Blue" /> <Style.Triggers> <DataTrigger Binding="{Binding Path=Test}" Value="True"> <Setter Property="DockPanel.Background" Value="Yellow" /> </DataTrigger> </Style.Triggers> </Style> </DockPanel.Style> </DockPanel></DockPanel>