因此,我想在 WPF 应用程序窗口的某个位置创建一个文本框,并为其指定某个值。可以是转换为字符串的整数,也可以是字符串。如何在触发事件时创建文本框,然后在 5 秒后销毁它?
我需要能够同时拥有其中多个,所以我可以执行以下操作: 生成 1 个值为 X 的文本框 等待 2 秒 生成 1 个值为 Y 的文本框 等待 3 秒 销毁第一个文本框 销毁第二个文本框
等等。谢谢。
最佳答案
使用项目控件并将项目模板指定为文本框,然后将数据集合绑定(bind)到项目控件。
以下是项目控件的可能 xaml:
<ItemsControl ItemsSource="{Binding TextBoxDataCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=. }" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
您可以绑定(bind)到一个集合,如下所示:
public ObservableCollection<string> TextBoxDataCollection { get; set; }
现在,在您的代码中,如果您想要 3 个文本框,那么您的集合应如下所示:
TextBoxDataCollection = new ObservableCollection<string>() { "", "", "" };
您可以使用相同的集合检索在文本框中键入的数据。
一旦您在集合中删除或添加更多字符串,它就会为您创建更多文本框。
如果您足够喜欢,您可以在集合中拥有除字符串之外的更复杂的对象。
关于c# - 如何使用 MVVM 动态创建一个具有绑定(bind)值的文本框,并在 5 秒后销毁它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272787/