我有一个ResourceDictionary,我有这个代码:
<DataTemplate x:Key="UserDataTemplate">
<StackPanel Orientation="Horizontal">
<StackPanel>
<Image Source="{Binding Path=MyPhoto}" Height="100"/>
<Label HorizontalAlignment="Center" Content="{Binding Path=Names}"/>
</StackPanel>
<CheckBox x:Name="chkBxRegistered" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</StackPanel>
</DataTemplate>
在我的xaml文件中我有:
<ItemsControl x:Name="UserList" ItemTemplate="{StaticResource UserDataTemplate}" Grid.Column="1">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
我以这种方式绑定我的列表
UserList.ItemsSource = result; //列出结果 所以,在我的代码背后,我想抓住检查事件并完成我需要的所有逻辑,或者如果有人有其他想法,请评论并帮助我,谢谢,抱歉我的英语不好。
答案 0 :(得分:0)
考虑到我不知道你的xaml.cs是什么样的,最简单的解决方法是将DataTemplate从ResourceDictionary移动到你的xaml文件(你定义了ItemsControl),然后设置Checked
事件处理程序在DataTemplate中的CheckBox上。
您修改过的DataTemplate如下所示:
<DataTemplate x:Key="UserDataTemplate">
<StackPanel Orientation="Horizontal">
<StackPanel>
<Image Source="{Binding Path=MyPhoto}" Height="100"/>
<Label HorizontalAlignment="Center" Content="{Binding Path=Names}"/>
</StackPanel>
<CheckBox x:Name="chkBxRegistered" VerticalAlignment="Center" HorizontalAlignment="Center" Checked="ChkBxRegistered_OnChecked"/>
</StackPanel>
</DataTemplate>
然后,您可以在事件处理程序中编写已检查的处理逻辑(在xaml.cs文件中):
private void ChkBxRegistered_OnChecked(object sender, RoutedEventArgs e)
{
// Your checked handling code goes here
}