簡體   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