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

本文关键字:控件 绑定 用户 FlowLayout | 更新日期: 2023-09-27 18:17:27

请您帮忙处理以下事宜…

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

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

…其中大括号表示contains

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

我有一个ViewModel ViewMod.cs这个模型,和一个ViewModel这些ViewModels ListViewModel.cs

列表

我设置FlowLayoutControlItemSource属性在UserControl1.cs编程创建UserControl1并设置它的数据上下文

就我从调试中可以看出,我的ViewModels列表的解析正在工作,但是我不确定如何从MyType返回数据,因为当请求绑定UserControl2返回null

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

解决方案文件

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

尝试:

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中完全完成时,您在代码隐藏中添加网格子节点和其他东西有点过头了。