我正在MVVM風格的WPF構建應用程序。我試圖在我的DataGrid
上進行篩選,當選中或取消選中多個CheckBox進行篩選時。WPF MVVM:事件觸發器不工作CheckBox
我找到了解決方案Interaction.Triggers
,但在這種情況下它不適用於我。
這裏是我的代碼:除了FilterCommand
<ListBox
ItemsSource="{Binding PortsFilterSource}"
Background="LightGray"
BorderThickness="0"
Grid.Column="1">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox
Content="{Binding Name}"
IsChecked="{Binding IsChecked}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Unchecked">
<i:InvokeCommandAction Command="{Binding FilterCommand}"/>
</i:EventTrigger>
<i:EventTrigger EventName="Checked">
<i:InvokeCommandAction Command="{Binding FilterCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</CheckBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
一切是偉大的工作。我有這個在我的C#代碼:
public DelegateCommand<object> FilterCommand { get; set; }
...
FilterCommand = new DelegateCommand<object>(Filter);
Filter(object obj)
是一個函數,但是當我選中或取消選中我的任何複選框它沒有進入。
任何幫助將不勝感激。
爲什麼不使用'IsChecked'的setter方法調用'Filter'? – JanDotNet
調試時看看輸出窗口,你有沒有綁定錯誤? – ajg
哦,是的,我有:System.Windows.Data錯誤:40:'BindingExpression路徑錯誤:'FilterCommand'屬性找不到'對象'''FilterModel'(HashCode = 57774494)'。 BindingExpression:路徑= FilterCommand; DataItem ='FilterModel'(HashCode = 57774494);目標元素是'InvokeCommandAction'(HashCode = 8505800);目標屬性是'命令'(類型'ICommand')' – francosy