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

问题描述 投票:1回答:1

这是一个example

Preview

“删除” - 删除

“添加行” - 添加

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

wpf grid
1个回答
0
投票

你可以使用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);
     }
© www.soinside.com 2019 - 2024. All rights reserved.