由于最近有这方面的需求,而且刚接触wpf不久,在网上找了很多方法,都不是使用MVVM模式的,因为DataGrid的列不能绑定
这就难受了,我想了个折中的方法,这个是使用了MVVMLight的消息机制,我就不说太多了,直接上代码
UI界面
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*"/>
-
- </Grid.ColumnDefinitions>
- <Grid.RowDefinitions>
- <RowDefinition Height="auto"></RowDefinition>
-
- <RowDefinition Height="*"></RowDefinition>
- </Grid.RowDefinitions>
- <StackPanel Orientation="Horizontal">
- <Button Content="新增列" Command="{Binding AddColumnCmd}" Margin="5"/>
- <Button Content="删除列" Command="{Binding DeleteColumnCmd}" Margin="5"/>
- <Button Content="新增数据" Command="{Binding AddDataCmd}" Margin="5"/>
- </StackPanel>
- <DataGrid x:Name="dataGrid" AutoGenerateColumns="True" Grid.Row="1" SelectionUnit="Cell" SelectionMode="Extended"/>
- </Grid>
这里需要在
这里发一个消息,MessageToken如下:其实就是一个字符串类,防止重复
public class MessageToken { /// <summary> /// 设置DataGrid消息 /// </summary> public static readonly