c# - 停止在 View 加载时调用单选按钮 setter

标签 c# wpf mvvm radio-button

我正在使用 MVVM 模式。

在我的 View 模型中,我的单选按钮有一个枚举属性。此属性连接到我的模型的枚举属性:

public MyEnum MyEnumVar
{
     get { return MyModel.EnumVar; }
     set { MyModel.EnumVar = value; }
}

如果我更改为不同的 View 然后更改回原始 View ,而不是调用 getter,而是调用 setter,并且传递的值是我的单选按钮的第一个选项。

基本上每次我切换 View 时,我的模型单选按钮的枚举都会被重置。有没有办法阻止二传手被调用?

最佳答案

I am using a converter so that I can store the resulting boolean into my enum property.



转换器是一个可怕的解决方案,现在已经很普遍了,并且对于绑定(bind) RadioButtons 的许多重复问题已被接受。 ,“正确”的方式是使用 ListBoxSelectedItem属性(property),这样就没有很多 RadioButtons可以争夺你的属性(property)。

可以在 this answer 中查看如何执行此操作的示例。 .如果切换查看 SelectedItem应该将源绑定(bind)到目标,选择 RadioButton与各自的值(value)。

关于c# - 停止在 View 加载时调用单选按钮 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11695336/

相关文章:

c# - 如何找出动态创建的复选框是否被选中

c# - 如何缩短 BasedOn 样式

wpf - 键盘焦点的样式触发器

android - 在前台服务中实现 Room 时的 ViewModel

c# - 从ViewModel(MVVM)添加到XAML WPF

c# - 无法添加服务引用

c# - 混合 Unity Web API 和 MVC4 UnityDependencyResolvers : No parameterless constructor defined for this object

c# - 发布网站项目,以便它创建 .dll 而不是 .aspx.cs 文件

wpf - 表格列宽和水平对齐方式

wpf - Rx-WPF 和 Rx-Xaml 包之间有什么区别吗?