我有一個名爲People的類,它具有STRING name
和STRING ImgPath
。我做了一個LIST
listOfPeople
這是icCheckBox
的來源。如何獲取數據模板中複選框的isChecked屬性的值
<DataTemplate x:Key="cBoxTemp">
<StackPanel Orientation="Horizontal" Width="Auto" Height="Auto">
<CheckBox Content="{Binding name}" MouseUp="CheckBox_MouseUp"/>
</StackPanel>
</DataTemplate>
XAML
<ItemsControl Name="icCheckBox" Grid.Column="0" ItemTemplate="{StaticResource cBoxTemp}" Height="Auto" Width="Auto">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
我想通過每一個複選框改變時並填充檢查人的新名單。
private void CheckBox_MouseUp(object sender, MouseButtonEventArgs e)
{
// listOfSelectedPeople = new List<Person>();
// For Each (Person e in listOfPeople)
// if(cur.isChecked == true)
// ListofSelectedPeople.add(current);
// ... Once I have this List populated my program will run
}
我不能讓複選框的isChecked
屬性,因爲它是一個datatemplate
。我怎麼能這樣做?
你能不能解釋一下?這個名字永遠不會改變,只是它是被檢查還是不被檢查。我是否必須創建自己的isChecked屬性,而不是在複選框中創建一個? – meisenman
這裏你是:) – dzendras
人是一個模型。你用ViewModel東西(INPC)包裝它。在VM中有一個地方可以添加額外的屬性(如IsChecked)。最後,你有「主」視圖模型,其中聚合所有項目是列表。它綁定到他們的事件,以便了解用戶切換複選框。 – dzendras