![](/img/trans.png)
[英]For a user control, how to set the binding of a item template item to a user property?
[英]FlowLayout Control With User Control Item Template Not Binding
請您幫忙以下...
出於自定義彈出對話框的目的,我希望按照以下方式構建WPF應用程序:
Window > Grid > User Control > FlowLayout > Data Template > User Control
...大括號代表“包含”
我有一個MyType.cs
模型,我希望將其內容顯示在最終用戶控件UserControl2.xaml
我有一個視圖模型 ViewMod.cs
這個模型和視圖模型為這些的ViewModels名單ListViewModel.cs
我以編程方式創建UserControl1並設置了它的數據上下文后,在UserControl1.cs
設置了FlowLayoutControl的ItemSource屬性
據調試顯示,我正在解析ViewModels列表,但是我不確定如何從MyType返回數據,因為當請求綁定的UserControl2的數據上下文返回null時
...
抱歉,如果我的要求不清楚。 這是我第一次參加WPF,非常感謝您的幫助
嘗試:
public UserControl2() {
InitializeComponent();
Loaded += (sender, args) => {
var obj = (ViewMod)this.DataContext;
if (obj == null || obj.Prop == null)
return;
var d = obj.Prop;
if (d == null)
return;
grd2.Children.Add(new TextBlock { Text = d.Name });
};
}
DataContext
沒有立即設置。 因此,我們使用Loaded
事件並向其添加一個lambda以執行相應的步驟。
邊注:
即使此方法可行,請進行搜索並查看一些MVVM示例。 盡管沒有代碼隱藏並不是真正的MVVM要求,但我認為,如果可以從xaml中完美地添加代碼,則添加Grid子代和代碼隱藏的內容實在太過分了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.