我有一个包含复选框的 ListBox,它们位于 DataTemplate 中。我有两个按钮 "全选" 和 "反选"。我希望点击这些按钮时能够实现全选和反选操作,并且我还想在类中实现 INotifyPropertyChanged 接口。请问我该如何实现这些功能?
谢谢您提前的答案。
XAML 代码:
谢谢您提前的答案。
XAML 代码:
<StackPanel>
<ListBox Name="lstUserDefination"
ScrollViewer.VerticalScrollBarVisibility="Auto" SelectionMode="Multiple">
<ListBox.ItemTemplate>
<DataTemplate>
<ListBoxItem>
<CheckBox Name="chkUser" Content="{Binding AuthorityName}"/>
</ListBoxItem>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
C# 代码
public partial class UserDefinationEdit : Window
{
public ObservableCollection<Authority> authorityList { get; set; }
public UserDefinationEdit()
{
InitializeComponent();
CreateCheckBoxList();
lstUserDefination.ItemsSource = authorityList;
}
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
DragMove();
}
}
public void CreateCheckBoxList()
{
authorityList = new ObservableCollection<Authority>();
authorityList.Add(new Authority() {AuthorityValue = 0, AuthorityName = "0 - " });
authorityList.Add(new Authority() { AuthorityValue = 1, AuthorityName = "1 - " });
authorityList.Add(new Authority() { AuthorityValue = 2, AuthorityName = "2 - " });
authorityList.Add(new Authority() { AuthorityValue = 3, AuthorityName = "3 - " });
authorityList.Add(new Authority() { AuthorityValue = 4, AuthorityName = "4 - " });
authorityList.Add(new Authority() { AuthorityValue = 5, AuthorityName = "5 - " });
authorityList.Add(new Authority() { AuthorityValue = 6, AuthorityName = "6 - " });
this.DataContext = this;
}
private void btnUnselectall_Click(object sender, RoutedEventArgs e)
{
lstUserDefination.UnselectAll();
}
private void btnSelectAll_Click(object sender, RoutedEventArgs e)
{
lstUserDefination.SelectAll();
}
}
public class Authority
{
public string AuthorityName { get; set; }
public int AuthorityValue { get; set; }
public bool IsChecked { get; set; }
}
}