public class Item : NotifyBase
{
public List<int> Items { get; } = new List<int> { 1, 2, 3 };
private int selectedItem;
public int SelectedItem
{
get => selectedItem;
set
{
IsEnabled = value != 1;
selectedItem = value;
}
}
private bool isEnabled = true;
public bool IsEnabled
{
get => isEnabled;
set => SetField(ref isEnabled, value);
}
public bool IsSelected { get; set; }
}
public partial class MainWindow : Window
{
public List<Item> Items { get; } = new List<Item>
{
new Item(),
new Item(),
new Item(),
new Item(),
new Item(),
};
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
}
事实上,这个任务非常简单,这里的一切都取决于你的应用程序的制作能力、绑定的使用等等。
如果记住,那么应该有一个单独的类,它将包含有关表中一行的信息,如下所示:
这是一个非常简化的视图,这里有一些细微差别,但举个例子来说它就可以了。我想您理解逻辑,我们有一些属性
SelectedItem
,每次在it),然后我们可以稍微重写,在其中指示检查新值的最简单逻辑。 由于属性从代码中更改(我正在谈论),因此我们需要告诉接口它,通知它,并且出于这些目的,有,它在所需的属性中被调用。实现本身是不同的,我使用这个:ComboBox
get
set
set
IsEnabled = ...
INotifyPropertyChanged
set
INotifyPropertyChanged
实际上,这就是解决像您这样的问题所需要的一切。剩下的只是为绑定创建一个集合,设置
DataContext
XAML 将从哪个接收数据,并编写一个简单的接口。我会将所有内容都写在窗口中,但我建议您为此目的单独创建一个类,窗口应该是干净的!
好吧,XAML:
我讨厌这个组件,它让我写了很多不必要的东西,所以如果你知道如何做得更好,那就去吧,我只是快速地写了它。
这里一切都很简单,我们制作一个表格,将其绑定到一个
Items
属性,好吧,我们制作两列,第一列显示数字列表,第二列是CheckBox
.我们启动并看到我们的逻辑已成功运行
如您所见,一切都很简单,祝您学习顺利!