繁体   English   中英

如何从其视图模型关闭用户控件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM