繁体   English   中英

DataTemplate 中只读属性的绑定更新

[英]Binding Update of a Read-Only Property in DataTemplate

我有一个 ListBox,它通过依赖属性绑定到ObservableCollection<object> 我正在使用DataTemplateSelector来确定在 ObservableCollection 中找到的基于类类型的对象类型,然后应用适当的 DataTemplate。 任何类类型的多个对象都是可能的。

我的模型类的一部分如下。 它已被编辑以仅显示兴趣点:

public class IPUpdater
{
   public IPUpdater()
   {
   }

   public string IPTransceiverInstall { get; set; }
   public string IPTransceiverFinal { get; set; }
   public Boolean IsFinal { get; set; }       

   public string IPTransceiver
   {
       get
       {
           return IPTransceiverAddress();
       }
   }

   private string IPTransceiverAddress()
   {
       if (!IsFinal)
           return IPTransceiverInstall;
       else
           return IPTransceiverFinal;
   }

}

当使用适当的 IPUpdater 模板时, IPTransceiver绑定到 XAML DataTemplate 中的 TextBox。 IsFinal绑定到同一模板中的 CheckBox。

问题:如何强制 TextBox 注册IPTransceiver已更改? 我想尝试将 DependencyProperty 设置为等于 IPTransceiver,但是如果列表框中有多个类的实例,我不确定最初如何设置它的值。

TwoWayOneWayToSource绑定模式不可用于只读属性。 当 CheckBox 值更改时,我可以验证IsFinal是否更新。 我什至试图强制IPTransceiverAddress()IsFinal更新时触发。 以上均未导致 TextBox 更新。 我能够让框更新的唯一方法是重复 SQLite 查询,我想避免这种情况。

谢谢!

您希望用作绑定源的任何类都应实现INotifyPropertyChanged 您的 ViewModel(以及您的模型,如果您计划将视图直接绑定到它们)应实现此接口并引发PropertyChanged事件,以便 WPF 绑定引擎在 UI 中反映这些更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM