WPF OneWayToSource绑定初始值

11
我有一个单选按钮元素,其IsChecked属性绑定到ViewModel中的MyProperty。由于某种原因,该Binding的模式为OneWayToSource,它将值从RadioButton.IsChecked推送到ViewModel.MyPropertyRadioButton.IsChecked最初是false。现在,我想从ViewModel设置初始值,这个值甚至可能是true。但我不能这样做,因为该属性已被绑定占用。
是否有一种方法可以使用该模式的Binding并在UI中将默认值设置为绑定属性?就像这样:
<RadioButton IsChecked="{Binding MyProperty, Mode=OneWayToSource, DefaultVaule=???}">
</RadioButton>

可能是在WPF数据绑定中的默认值?的重复问题。 - pushpraj
那么您的意思是要将控件属性的值推送到视图模型中,但由于该属性被绑定占用且绑定中没有其他选项可用,因此您无法设置该值?如果是这样,那么在绑定中默认设置FallbackValue和视图模型属性的默认值为相同的值可能会帮助您实现相同的效果。默认情况下,booleanIsChecked的默认值为false,因此除非您想要默认值为true,否则您不需要进行任何更改。 - pushpraj
在第一句话中,您准确地描述了我的意思。我想将 IsChecked 设置为 True - 这就是问题所在。 - monstr
@pushpraj 从概念上讲,“FallbackValue”并不完全适合我的情况,但它正在起作用。 - monstr
1个回答

9
如果我理解你的意思正确的话,我认为这可能会有所帮助:
您可以通过 TargetNullValue 属性定义默认值。您还可以定义一个 FallbackValue 值以防出现错误,例如:
<TextBox Text="{Binding MyProperty, TargetNullValue=0, FallbackValue=10}" />

看这里: 在此输入链接描述


1
不行,我已经看过那篇文章了。TargetNullValue是在目标属性等于Null时使用的。但是我有一个Boolean属性。 - monstr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接