【发布时间】:2015-04-18 05:23:11
【问题描述】:
我的枚举、数据表和数据网格有问题。我有以下代码:
StateEnum.cs:
public enum StateEnum
{
Pass,
Fail,
Mandatory,
Retest
}
MainWindow.xaml.cs:
private void Button_Click(object sender, RoutedEventArgs e)
{
ViewModel.MainViewModel vm = VmSingleton.GetVmInstance();
vm.ModuleRecords = new System.Data.DataTable();
DataTable dt = new DataTable("TableName");
dt.Columns.Add("Id",typeof(int));
dt.Columns.Add("Operation1", typeof(StateEnum));
dt.Columns.Add("Operation2", typeof(StateEnum));
dt.Columns.Add("Operation3", typeof(StateEnum));
dt.Columns.Add("Operation4", typeof(StateEnum));
vm.ModuleRecords = dt;
for (int i = 0; i < 5; i++)
{
DataRow newDR = dt.NewRow();
foreach (DataColumn col in dt.Columns)
{
int j = 1;
if (col.ColumnName == "Id")
newDR[col.ColumnName] = i + j;
else
newDR[col.ColumnName] = StateEnum.Pass;
j++;
}
dt.Rows.Add(newDR);
}
}
MainWindow.xaml
…
<DataGrid Grid.Row="0" ItemsSource="{Binding ModuleRecords}" AutoGenerateColumns="True" />
<Button Grid.Row="1" Content="Ok" Click="Button_Click"/>
…
虽然 Id 显示在单元格中,但单元格中的枚举不直接显示。当我单击一个单元格时,我可以选择正确的枚举。我该如何解决?
编辑:
我很抱歉模棱两可的描述。就我而言,我想显示数据表的数据,因为我不知道在设计时必须显示多少数据。这就是选择数据表的原因。在我的示例中,我可以进行或多或少的操作,但我不知道有多少...
我认为在我在这里发帖之前我已经简化了我的问题。我希望这个代码示例更清楚:
private void Button_Click(object sender, RoutedEventArgs e)
{
DataAccess.DataAccessor accessor = new DataAccess.DataAccessor();
// i dont know how much operations i got at design time
List<string> operationHeaders = accessor.getOperationHeaders();
ViewModel.MainViewModel vm = VmSingleton.GetVmInstance();
vm.ModuleRecords = new System.Data.DataTable();
DataTable dt = new DataTable("TableName");
dt.Columns.Add("Id",typeof(int));
// this is because i have to go through with a for-each
// to initialize the header of the table
foreach (string header in operationHeaders)
{
dt.Columns.Add(header, typeof(StateEnum));
}
vm.ModuleRecords = dt;
// fil the datatable with data...
...
}
我希望现在情况更清楚......
编辑 2:
我的问题是枚举值的绑定不能正常工作。我在 Viewmodel 中设置了值,但 datagridview 中的枚举属性仅显示一个空白单元格。我希望看到枚举属性的值,例如“通过”或“失败”...
当我点击一个单元格时,我会看到枚举的可能值,但它不是直接设置的。
【问题讨论】:
-
请花一些时间在您的问题中添加一些词,并尝试更好地解释您的问题。
-
没人?这是解决该问题的正确策略吗?问题是否足够清楚? :-)
-
抱歉,我还是不明白你的问题是什么。
-
请参阅编辑#2 :-)
-
我不知道为什么没有人理解你的问题,因为它在我看来也是如此:绑定到 WPF DataGrid 的 DataTable 不显示枚举类型的值!哪部分不清楚?解决办法是什么?找到了吗?
标签: c# wpf datagridview datatable enums