gpt4 book ai didi

C# WPF 数据绑定(bind)复选框基于 MVVM 中的组合框选择

转载 作者:行者123 更新时间:2023-12-03 10:41:20 24 4
gpt4 key购买 nike

我目前正在学习 WPF 的 MVVM 设计模式,我想根据我的 ComboBox 的 SelectedItem 绑定(bind)我的 CheckBoxes,它是数据绑定(bind)到字典,其中键是我的设备序列号,值是该设备的 ViewModel。
enter image description here
理想情况下,我的 SelectedItem 应该是 IOBoardViewModel 的值。

<ComboBox Name="io_boards_list" 
ItemsSource="{Binding IOBoards}" DisplayMemberPath="Key" SelectedValuePath="Value"
HorizontalAlignment="Left" Margin="361,28,0,0" VerticalAlignment="Top" Width="657" Height="35"/>
这是我最不清楚的地方:如何在我的 IOBoard 模型中绑定(bind)这些 bool 值。
<CheckBox IsChecked="{ Binding Value.io_board.s0 }" Content="Input 0" Canvas.Left="10" Canvas.Top="10" Height="15"/>
<CheckBox IsChecked="{ Binding Value.io_board.s1 }" Content="Input 1" Canvas.Left="10" Canvas.Top="36" Height="15"/>
<CheckBox IsChecked="{ Binding Value.io_board.s2 }" Content="Input 2" Canvas.Left="10" Canvas.Top="63" Height="15"/>
在我的 IOBoardViewModel 中,我指的是我保存 bool 值的实际模型。
        public Dictionary<string, IIOBoardViewModel> IOBoards { get; private set; }

public FullIOBoard io_board
{
get { return _io_board; }
}
这是我的 IOBoard 模型的片段:
        public bool s0
{
get
{
return _s0;
}
set
{
_s0 = value;
OnPropertyChanged("s0");
}
}

public bool s1
{
get
{
return _s1;
}
set
{
_s1 = value;
OnPropertyChanged("s1");
}
}

public bool s2
{
get
{
return _s2;
}
set
{
_s2 = value;
OnPropertyChanged("s2");
}
}
我想知道我是否对如何在 MVVM 模式中将数据绑定(bind)在一起有正确的想法,如果没有,我将非常感谢您的见解或建议。
更新:
我想到了一种方法,可以在绑定(bind) ComboBox 的 SelectedItem 时使用(这将是字典的识别序列号到我的 ViewModel 中的变量):
public string SelectedItem
{
get
{
return _SelectedItem;
}
set
{
_SelectedItem = value;
}
}
现在我相信我应该将我的 IsChecked 绑定(bind)到 CheckBox
<CheckBox IsChecked="{ Binding IOBoards[SelectedItem].s0 }" Content="Input 0" Canvas.Left="10" Canvas.Top="10" Height="15"/>
但是,即使我已将其中一个信号硬编码为始终为真,我仍然无法更新复选框:
_io_board.s0 = true;
_io_board.s1 = (inputSignal & 0x02) == 0x02;

最佳答案

您可以通过名称引用它直接绑定(bind)到 ComboBox 的 SelectedItem:

<CheckBox IsChecked="{ Binding SelectedItem.Value.io_board.s0, ElementName=io_boards_list }" 

关于C# WPF 数据绑定(bind)复选框基于 MVVM 中的组合框选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65189734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com