gpt4 book ai didi

c# - twoWay 绑定(bind)在以 ObservableCollection 作为源的 ToggleButton 中不起作用

转载 作者:行者123 更新时间:2023-12-03 10:31:01 25 4
gpt4 key购买 nike

我成功绑定(bind)了两个ToggleButton发送到 ObservableCollection<VMData> , 按钮的 IsChecked状态是我遇到问题的地方:
XAML:

<ToggleButton Content="One" x:Name="ToggleButtonOne" Margin="10,20,0,0" Width="100"
Command="{Binding ToggleButtonClicked_Command}"
CommandParameter="{Binding ElementName=ToggleButtonOne}"
IsChecked="{Binding VMDataInfoSet[0].Running, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>

<ToggleButton Content="Two" x:Name="ToggleButtonTwo" Margin="10,10,0,0" Width="100"
Command="{Binding ToggleButtonClicked_Command}"
CommandParameter="{Binding ElementName=ToggleButtonTwo}"
IsChecked="{Binding VMDataInfoSet[1].Running, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
在 View 模型中:
public ObservableCollection<VMData> VMDataInfoSet { get; set; }

public class VMData
{
public string MyType { get; set; }
public string ID { get; set; }
public double Qty { get; set; }
public string Action { get; set; }
public bool Running { get; set; }
}
单击 ToggleButton 时, VMDataInfoSet[0].Running成功更新到 truefalse 的状态.但是,当我设置 VMDataInfoSet[0].Runningfalse (当检查 ToggleButton 时,又名 true ),通过 View 模型中的简单方法 ToggleButton保持“蓝色”并且不会更新回未选中状态。所以我可以更新 ObservableCollection通过按钮,但我无法通过 ObservableCollection 更新按钮/代码。
SO上有很多类似的问题,尤其是WPF。虽然我还不能弄清楚这一点。 OneWay 存在问题绑定(bind)切换按钮 here .我已经尝试添加 UpdateSourceTrigger在我的例子中, here .
有任何想法吗?

最佳答案

正如@JohnnyQ 在评论中提到的,在 VMDataClass 中实现 INPC 接口(interface):

public class VMData : INotifyPropertyChanged
{
private string myType;
private string iD;
etc

public string MyType
{
get { return myType; }
set
{
myType = value;
RaisePropertyChanged("MyType");
}
}
public string ID
{
{
iD = value;
RaisePropertyChanged("ID");
}
}
etc

public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
}

关于c# - twoWay 绑定(bind)在以 ObservableCollection 作为源的 ToggleButton 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66043826/

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