2017-03-22 106 views
0

我有一個複選框和一個複選框的列表,它充當列表框中所有項目的CheckAll/UncheckAll。如何將CheckBox綁定到CheckBox的ListBox

如何在列表框綁定中檢查所有項目時如何檢查chkAll複選框?

我可以在視圖模型中創建一個屬性來實現這一點。我想在xaml代碼中做到這一點。

<ListBox Name="listBox" ItemsSource="{Binding mySource}"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <CheckBox IsChecked="{Binding IsSelectedProperty}"> 
         </CheckBox> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
    </ListBox> 


<CheckBox Name="chkAll" Content="CheckAll/UnCheckAll" IsChecked ={}/> 
+1

@LynnCrumbling這個鏈接如何回答我的問題:)我的列表綁定工作正常,如預期。問題出在獨立複選框chkAll。 – John

+0

我會在具有setter的視圖模型中創建一個公共屬性;當該setter的值爲true時,循環遍歷mySource中的所有項並設置IsSelected = true。 (注意:如果任何項目未被選中,您需要設置相同的屬性= false。)您無法在純xaml中執行此操作。 –

回答

0

我想你需要有一個更高級別的視圖模型屬性來反映這個附加狀態。該州也有三個可能的值,因此請確保將IsThreeState設置爲true,並將其綁定到Nullable<bool>

然後在此屬性的setter中,您可以更新所有其他複選框屬性。

對於每個項目的IsSelectedProperty,您還需要更新三態屬性。

相關問題