[英]Setting the Datacontext of a dynamically created control
我有一個包含Canvas控件的UserControl(地圖)。 我正在從后面的代碼向此畫布動態添加一個控件(Gate)。
我希望Gate對象的DataContext成為地圖的DataContext的“門”屬性。 這是在后面的代碼中完成的。
Binding dataContextBinding = new Binding();
dataContextBinding.RelativeSource = new RelativeSource(RelativeSourceMode.Self);
dataContextBinding.Path = new PropertyPath("DataContext.SelectedLevelModule.Gate");
dataContextBinding.Mode = BindingMode.TwoWay;
dataContextBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
BindingOperations.SetBinding(gate, DataContextProperty, dataContextBinding);
在這段代碼運行之后,gate.DateContext為空...可以采取任何方法嗎? 畫一個空白..謝謝哈羅德
您正在將屬性路徑設置為DataContext.SelectedLevelModule.Gate
。 然后,您將綁定分配給DataContextProperty
。 我認為發生的事情是該路徑現在是gate.DataContext.DataContext.SelectedLevelModule.Gate
。
嘗試從PropertyPath
刪除DataContext,看看是否可以解決。 您已經將它分配給DataContext,不必在Path中指定它。
var dataContextBinding = new Binding();
dataContextBinding.Path = new PropertyPath("SelectedLevelModule.Gate");
BindingOperations.SetBinding(gate, DataContextProperty, dataContextBinding);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.