gpt4 book ai didi

c# - WPF Mvvm单选按钮绑定(bind)未从viewmodel设置初始值

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

我在使用单选按钮组时遇到了很多麻烦。最初,单选按钮不会从 ViewModel 设置值,而是在正确选择功能时设置。所以基本上用户不知道什么是初始值。

这是我的xaml。

<ListBox ItemsSource="{Binding ViewModelCollection}">
<ListBox.ItemTemplate>
<DataTemplate>
<RadioButton GroupName="rbList" IsChecked="{Binding Path=IsReady,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<Label Content="{Binding Path=NameOfRadioButton}"></Label>
</RadioButton>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

这是我的 View 模型
public bool IsReady
{
get
{
return BusinessObject.IsReady; // debuggin on this line shows a true value being returned
}
set
{
BusinessObject.IsReady = value;
OnPropertyChanged("IsReady");
}
}

Viewmodel 是一个简单的 bool 值,它实现了 INotifyPropertyChanged。
我怀疑我可以使用枚举转换器,因为单选按钮的数量总是动态的。

所以只是为了澄清,在第一次运行时没有选择单选按钮,但在单击单选按钮后工作正常。 View 模型和底层数据库反射(reflect)了所做的更改。

如何让单选按钮在启动时显示值?

干杯。

最佳答案

使用 WPF 工具包主题 (http://wpf.codeplex.com/) 时遇到了同样的问题。我比较了 CheckBox(有效)和 RadioButton(无效)的控制模板。 IsChecked 值的触发器设置为与复选框相反,它查找“false”,然后在退出时执行选中的动画,其中复选框查找 true。

当单选按钮在呈现之前绑定(bind)时,这会导致问题,因为该值已经为真,设置选中的视觉状态的动画不会触发,直到您选中另一个框以使其为假。

我修复了单选按钮主题,使其遵循与复选框 相同的视觉状态逻辑.我不确定这是否会破坏单选按钮的任何其他功能,但到目前为止它似乎工作正常。

关于c# - WPF Mvvm单选按钮绑定(bind)未从viewmodel设置初始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5869651/

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