如何在类WPF中绑定两个属性

时间:2018-11-13 13:14:13

标签: c# wpf mvvm binding viewmodel

我想在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方法。

正确的做法是什么。

1 个答案:

答案 0 :(得分:0)

您可以使用WPF multibinding将控件绑定到两个字段,但是在这种情况下,我认为在更改格式时ViewModel会更改FilterString更有意义。

当控件的值取决于两件事时,您将使用multibinding,因为这是GUI功能。在您的情况下,ViewModel属性是逻辑链接的,因此将代码包含在ViewModel中更有意义。

为帮助您决定使用哪种模式,请问自己是否在其他地方重用ViewModel时是否想要相同的行为。