c# - 动态数据网格,可选列

标签 c# wpf mvvm datagrid

我知道这个问题之前已经回答过,但是看看他们中的大多数,他们使用后面的代码,我理解在 MVVM 中永远不行,其他人也使用 MVVM 模式。我拒绝使用模式,因为我想从头开始学习。我能够正确绑定(bind) ItemsSource 但如何绑定(bind)到数据网格标题等。

我认为这很常见,但我想要的是能够拥有一个带有标题的数据“表”。我希望用户能够右键单击标题行并关闭和打开列。那部分我并不担心弄清楚该怎么做。

我在问如何在没有代码隐藏或框架的情况下拥有一个具有动态列/标题的数据网格。我不确定如何从 View 模型绑定(bind)到数据网格。

最佳答案

 <DataGrid AutoGenerateColumns="False" Height="256" HorizontalAlignment="Left" Name="dgEmp" VerticalAlignment="Top" Width="490"  ItemsSource="{Binding DeleteData,Mode=TwoWay}" Margin="6,7,0,0" Grid.RowSpan="3">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="ID" Binding="{Binding ID,Mode=TwoWay}" IsReadOnly="True" Visibility="Hidden"/>
                        <DataGridTextColumn Header="Description" Binding="{Binding Description,Mode=TwoWay}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Amount" Binding="{Binding Amount,Mode=TwoWay}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Date" Binding="{Binding Date,Mode=TwoWay}" IsReadOnly="True"/>
                        <DataGridTextColumn Header="Remark" Binding="{Binding Remark,Mode=TwoWay}" IsReadOnly="True"/>
                        <DataGridTemplateColumn>
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <Button Content="Update" x:Name="btnUpdate"
                            Click="btnUpdate_Click"></Button>
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                    </DataGrid.Columns>
                </DataGrid>

在此示例中,DataGrid 的 ItemSource 是 DeleteData,它是一个 ObservableCollection<Expense_Submit>
Expense_Submit 是我定义了所有属性的一类。它看起来像
public class Expense_Submit
{


 private int _ID;

    private string _UserID;

    private string _Description;

    private string _Amount;

    private DateTime _Date;

    private string _Remark;


  }

关于c# - 动态数据网格,可选列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12606820/

相关文章:

C#.Net 4.5 属性网格 : how to hide Properties

windows-phone-8 - 将不同的模型绑定(bind)到不同的 PivotItems

c# - RibbonComboBox 不更新 SelectedValue

WPF 动画闪屏

wpf - WPF Xaml 的 StringFormat 功能是否适用于 Label.Content?

c# - 无法将路由命令添加到 WPF 中的复选框

WPF - 使用 View 模型数据进行复制/粘贴与拖放时内存不足

c# - 如何在C#中显示货币格式

c# - C# 4.0 是否向后兼容 C# 2.0?

c# - 如何使用 C# 将二维数组插入数据库