![](/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.