[英]How to close User Control from its View Model
我这样创建了UserControl
:
MyUserCtrl myctrl = new MyUserCtrl() { DataContext = new MyViewModel()};
ControlCollection.Add(myctrl);
我使用此ItemsControl ItemsSource="{Binding ControlCollection}"
将其输出到视图。
干净而且不错,但是问题是我不知道如何关闭那些打开的UserControls
。
如果我只是将其删除到集合中,该怎么办。 因此,视图模型也将关闭吗?
不要将UI元素的集合分配给ItemsControl的ItemsSource。 而是将UI元素放在ItemsControl的ItemTemplate
然后将视图模型实例的集合传递给ItemsSource。
<ItemsControl ItemsSource="{Binding MyItems}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:MyUserCtrl />
</DataTemplate>
</ItemsCControl.ItemTemplate>
</ItemsCControl>
将视图模型项添加到“主”视图模型中的collection属性中:
var item = new MyViewModel();
MyItems.Add(item);
要“关闭”控件,请从集合中删除相应的项:
MyItems.Remove(item);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.