c# - 如何使用 MVVM 动态创建一个具有绑定(bind)值的文本框,并在 5 秒后销毁它?

标签 c# wpf mvvm createelement

因此,我想在 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/

相关文章:

c# - MVVM命令错误

c# - 如何预热 IIS 中托管的 asp.net 核心应用程序 (a) 网站重启和 (b) 重新部署?

c# - 标签 MVVM 中显示的 WPF 百分比状态

wpf - 如何在所有控件上显示图层

wpf - 拦截 RelativeSource FindAncestor

windows-phone-7 - Window Phone 7 和 MVVM,页面的 Loaded 事件

wpf - 如何编辑 ViewModel 对象的属性,但仅在单击 View 中的按钮时应用更改

c# - 获取编辑器窗口的选定文本..visual studio 扩展

c# - MSBuild 在 _CopyOutOfDateSourceItemsToOutputDirectory 期间复制依赖项目文件

c# - 避免在 C# winform 的键盘快捷方式上发出警报