我在窗口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