使用linq表达式将IsEnabled绑定到linq属性

时间:2017-07-31 18:30:45

标签: c# linq xaml mvvm binding

我想将XAML按钮的属性“IsEnabled”绑定到条件,例如“仅当我的Observable集合中的所有项都具有IsValid property = true时才启用按钮”。所以Linq表达式看起来像:

MyObsCollectionProp.Any(record=>!record.IsValid)

 MyObsCollectionProp.All(record=>record.IsValid)

sombody可以告诉我合法且有效(对于MVVM模式)的方式吗?

1 个答案:

答案 0 :(得分:2)

将名为IsButtonEnable的布尔属性声明为:

<script>
(function() {
  for (div=0; div < document.querySelectorAll('div').length; div++) {
    document.querySelectorAll('div')[div].style.overflow = "auto";
  };
})();
</script>

将具有此属性的按钮绑定为:

private bool isButtonEnable;
public bool IsButtonEnable
{
    get
    {
        return isButtonEnable;
    }
    set
    {
        isButtonEnable = value;
        OnPropertyChanged("IsButtonEnable");
    }
}

现在在您的ViewModel中将ObservableCollectionChanged事件绑定为:

<Button Content="Save Data" IsEnable="{Binding IsButtonEnable, UpdateSourceTrigger=PropertyChanged}"></Button>