C# 绑定设置为WPF中的复选框
使用实体框架(C#),我有一个C# 绑定设置为WPF中的复选框,c#,.net,wpf,data-binding,C#,.net,Wpf,Data Binding,使用实体框架(C#),我有一个User类,它有ONE:MANY映射到UserRight类(简单地说,用户有一组权限)。每个权限由一个字符串标识。现在,由于可能的权限的最大数量是有限的(创建一个RightViewModel类来包含用户权限: public class RightViewModel : INotifyPropertyChanged { private string _name; public string Name { get { return
User
类,它有ONE:MANY
映射到UserRight
类(简单地说,用户有一组权限)。每个权限由一个字符串标识。现在,由于可能的权限的最大数量是有限的(创建一个RightViewModel
类来包含用户权限:
public class RightViewModel : INotifyPropertyChanged
{
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
Change("Name");
}
}
private bool _hasRight;
public bool HasRight
{
get { return _hasRight; }
set
{
_hasRight = value;
Change("HasRight");
}
}
public void Change(string strPropertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(strPropertyName));
}
public event PropertyChangedEventHandler PropertyChanged;
}
为您的用户创建一个类似的类,包含类型为ObservableCollection
的成员权限
在XAML中,使用ItemsControl
:
<ItemsControl ItemsSource="{Binding Rights}"
ItemTemplate="{StaticResource RightTemplate}"/>
和模板定义:
<DataTemplate x:Key="RightTemplate">
<CheckBox Content="{Binding Name}" IsChecked="{Binding HasRight, Mode=TwoWay}"/>
</DataTemplate>
Mode=TwoWay
使绑定更新您的RightViewModel
实例
如果需要以不同的布局显示复选框,请定义ItemsControl
的ItemsPanel
最后,将您的用户设置为容器的
DataContext。复选框给出一个布尔值,您的用户权限是字符串-那么您到底想做什么?