我在窗口4名列表视图,每个ListView中都有一个复选框列像这样: 选择ListView中的所有项目,通过命令(MVVM)
现在我想实现1个命令,我可以绑定到我有每个ListView的标题中的CheckBox。因此,如果单击标题中的复选框,它将选择该ListView中的所有项目,如果再次单击,它将再次取消选中它们。
我知道通过代码背后的点击事件很容易做到这一点,但我不认为这符合MVVM,是吗?
但我也不想在我的视图模型4个不同的“IsSelected”属性,我可以再结合就像是有人在列表视图的风格在这个职位建议:Select All items in ListView with MVVM
是否有任何其他方式?是否有可能发送ListView控件作为命令参数?
我试过:
<ListView x:Name="UserDemandListView" Grid.Column="2" Grid.Row="2" MinWidth="200" ItemsSource="{Binding DemandLicenses}" Grid.RowSpan="2">
<ListView.View>
<GridView>
<!--<SnippetGridViewColumnCheckBox>-->
<GridViewColumn CellTemplate="{StaticResource FirstCell}" Width="25">
<CheckBox x:Name="CheckAll3" Content="" Command="{Binding SelectAllCommand}" CommandParameter="{Binding ElementName=UserDemandListView}" Margin="4,0,0,0"/>
</GridViewColumn>
<!--</SnippetGridViewColumnCheckBox>-->
但参数在我的命令总是空。我WPF技能有点生疏我猜...
要什么属性DemandLicence是复选框约束? –
如果你将你的参数绑定到“DemandLicenses”,那么你可以迭代你的viewmodel并选择它们? – GCamel
@RomanoZumbé它尚未绑定到任何属性,因为我不需要绑定它。 – Whatever