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

时间:2016-06-02 21:12:13

标签: wpf grid

这是example

Preview

“Ta bort” - 删除

“Läggradrad” - 添加

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

1 个答案:

答案 0 :(得分:0)

您可以使用DataGrid,ItemControl或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);
     }