簡體   English   中英

設置動態創建的控件的數據上下文

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM