我想在viewmodel中绑定两个属性。
public class MainViewModel : INotifyPropertyChanged
{
public string Format
{
get { return format; }
set
{
if (format != value)
{
format = value;
OnPropertyChanged("Format");
}
}
}
public string FilterString
{
get { return filter; }
set { filter = SomeFunction(value); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName));
}
}
因此,当Format属性更改时,它将调用FilterString set方法。
正确的做法是什么。
答案 0 :(得分:0)
您可以使用WPF multibinding
将控件绑定到两个字段,但是在这种情况下,我认为在更改格式时ViewModel会更改FilterString更有意义。
当控件的值取决于两件事时,您将使用multibinding
,因为这是GUI功能。在您的情况下,ViewModel属性是逻辑链接的,因此将代码包含在ViewModel中更有意义。
为帮助您决定使用哪种模式,请问自己是否在其他地方重用ViewModel时是否想要相同的行为。