0

我有一个通过依赖属性绑定到ObservableCollection<object>. 我正在使用 aDataTemplateSelector来确定在 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;
   }

}

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

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

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

谢谢!

4

1 回答 1

1

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

于 2013-01-31T20:55:27.390 回答