例如: 我们需要使用ViewModel的两个不同属性动态绑定RadioButton Value属性。
查看模型
public class MyViewModel
{
//Property-1 to bind with RadioButton
public bool Accepted
{
get;
set;
}
//Property-2 to bind with RadioButton
public bool Enable
{
get;
set;
}
//Property to Identify which property should bind with radio button.
public bool Mode
{
get;
set;
}
}
的Xaml
<RadioButton Value="{Binding Accepted, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
是否可以动态绑定Accepted或Enable属性 根据Mode属性?
答案 0 :(得分:3)
您无法更改视图模型的绑定。但是,您可以创建一个绑定到的新属性,然后将其值委托给正确的其他值,例如:
public class ViewModel
{
public bool Prop1 { get; set; }
public bool Prop2 { get; set; }
public bool Use2 { get; set; }
public bool Prop
{
get { return Use2 ? Prop2 : Prop1; }
set
{
if (Use2)
Prop2 = value;
else
Prop1 = value;
}
}
}
当然,这个示例缺少INotifyPropertyChanged
实现细节。