[英]InvalidOperationException - A TwoWay or OneWayToSource binding cannot work on the read-only property
[英]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,但是如果列表框中有多個類的實例,我不確定最初如何設置它的值。
TwoWay
和OneWayToSource
綁定模式不可用於只讀屬性。 當 CheckBox 值更改時,我可以驗證IsFinal
是否更新。 我什至試圖強制IPTransceiverAddress()
在IsFinal
更新時觸發。 以上均未導致 TextBox 更新。 我能夠讓框更新的唯一方法是重復 SQLite 查詢,我想避免這種情況。
謝謝!
您希望用作綁定源的任何類都應實現INotifyPropertyChanged
。 您的 ViewModel(以及您的模型,如果您計划將視圖直接綁定到它們)應實現此接口並引發PropertyChanged
事件,以便 WPF 綁定引擎在 UI 中反映這些更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.