静态数据我的意思是很少会改变的数据。 在我的情况下,我需要创建一个表,其中前两列将是只读的,并代表每行的名称和代码。无论是否存在动态数据,都必须显示这两列的行记录。
-----------------------------------------------------------
Column1 | Column 2 | Column 3 | ..............|
-----------------------------------------------------------
Static Data |Static Data | Dynamic Data | Dynamic Data |
-----------------------------------------------------------
在WPF MVVM中使用静态数据填充DataGrid的最佳方法是什么? 通过XAML或定义Enumm,或将其存储在数据库中,还是有其他方法?如果有任何记录,将从数据库加载动态数据。
答案 0 :(得分:1)
最好的方法是将DataGrid的ItemsSource属性设置或绑定到IEnumerable,其中类型T具有每个"静态"的公共只读属性。数据栏:
public class Item
{
public string StaticColumnA { get; } = "Some static value";
public string StaticColumnB { get; } = "Some static value";
public string DynamicColumnA { get; set; }
}
public MainWindow()
{
InitializeComponent();
List<Item> theItems = new List<Item>() { };
dg.ItemsSource = theItems;
}
<DataGrid x:Name="dg" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding StaticColumnA}" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding StaticColumnB}" IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding DynamicColumnA}" />
</DataGrid.Columns>
</DataGrid>
数据对象应该通过公共属性返回静态值,可以是字符串,枚举值或其他值。