C#学习教程:将boolean绑定到visualstate分享


将boolean绑定到visualstate

我正在使用表达式混合,我想在列表框没有元素时将文本框的状态更改为红色边框和红色文本。

因此,当文本更改时,我会过滤列表框。

private void OnIPAddressTextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e) { compositeViewModel.manualServerInfoViewModel.FilterServers(IPAddressTextbox.Text); } 

在我的viewmodel中,我过滤结果并检查是否有任何结果。 然后我相应地设置boolean属性

 public bool HasResults { get; set; } public void FilterServers(string FilterCriteria) { .... HasResults = (FilteredManualServers.Count > 0)? true : false; } 

在我的xaml中,当HasResults布尔值为false时,我尝试将文本框的State更改为带有红色边框的visualstate。

      

这是NoResult视觉状态

             

但是当项目数为空且布尔值为假时,没有任何反应。

我究竟做错了什么?

问题是UI不知道HasResults的值何时发生变化。 绑定中没有轮询机制。 您必须通知UI有关HasResults的更改。 你有两种可能性。

  1. 当视图模型inheritance自DependencyObject时,将HasResults属性转换为依赖项属性。 有关依赖属性的更多信息:

  2. 在视图模型中实现INotifyPropertyChanged接口,并在HasResults的setter中引发PropertyChanged事件

    上述就是C#学习教程:将boolean绑定到visualstate分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1269738.html

(0)
上一篇 1天前
下一篇 1天前

精彩推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注