如何动态添加/删除行? [WPF]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何动态添加/删除行? [WPF]相关的知识,希望对你有一定的参考价值。

这是一个example

Preview

“删除” - 删除

“添加行” - 添加

你会使用DataGrid还是Grid?如何动态添加/删除行(当应用程序运行时)? [WPF]

答案

你可以使用DataGrid,ItemsControl和ListBox,这取决于你。

让我们假设每一行代表一个名为“MyClass”的类的实例。

首先,您应该在ViewModel中创建ObservableCollection。

 Public ObservableCollection<MyClass> MyClassList=new ObservableCollection<MyClass>();

在Xaml中,您可能有像这样的ItemsControl

<ItemsControl ItemsSource="{Binding MyClassList}" Margin="10">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <!--  Here is how you represent your data. But you should have a remove button here. -->
      <Button Content="Remove" 
         Command="{Binding RemoveCommand}" CommandParameter="{Binding}"/>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>

还有一个添加新实例的按钮。

 <Button Content="Add" Command="{Binding AddCommand}"/>

在ViewModel中,AddCommand是添加一个新的实例.RemoveCommand是删除实例。

    private void ExecuteAdd()
     {
        MyClassList.Add(new MyClass());
     }

    private void ExecuteRemove(object param)
     {
        MyClassList.Remove(obj);
     }

以上是关于如何动态添加/删除行? [WPF]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery 从 asp.net 视图模型中动态删除行而不删除集合中的其余下一个对象

wpf 如何动态的设置Grid宽和高.

ViewPager2 无法动态添加删除片段

wpf中怎么为treeview动态添加子菜单

C# wpf listview 如何动态添加 高手回答下

WPF DataGrid 设置那个属性不让用户添加和删除行呢?