繁体   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