FlowLayout控件与用户控件项模板不绑定

时间:2013-06-07 12:57:28

标签: c# wpf

请帮助以下......

对于自定义弹出对话目的,我希望按照以下方式构建我的WPF应用程序:

Window > Grid > User Control > FlowLayout > Data Template > User Control 

...括号代表“包含”

我有一个模型MyType.cs,我希望在最终用户控件中显示其内容UserControl2.xaml

此模型有 ViewModel ViewMod.cs ViewModel {{1}列表 ViewModel }

在以编程方式创建 UserControl1 并设置其数据上下文

后,在ListViewModel.cs中设置 FlowLayoutControl ItemSource 属性>

据我调试,我的 ViewModels 列表的解析工作正常,但我不确定如何在请求时从 MyType 返回数据绑定的 UserControl2 的数据上下文返回null

...

如果我的要求不清楚,请道歉。这是我第一次尝试WPF,非常感谢任何帮助

SOLUTION FILES

1 个答案:

答案 0 :(得分:0)

尝试:

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要求,但我认为你可以从代码隐藏中添加一些Grid代码,因为你可以在xaml中完美地完成它。