簡體   English   中英

用戶控件項模板未綁定的FlowLayout控件

[英]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設置了FlowLayoutControlItemSource屬性

據調試顯示,我正在解析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.

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