【发布时间】:2013-05-31 19:54:53
【问题描述】:
初学者问题。我在我的 WPF 表单中关注了XAML。
<DataGrid x:Name="GridTable"
ItemsSource="{Binding GridDataSource}"
HorizontalGridLinesBrush="#FFE2E2E2"
VerticalGridLinesBrush="#FFE2E2E2"
CanUserAddRows="False"
CanUserResizeColumns="True"
Margin="10,140,214,10"
SelectionChanged="GridTableSelectionChanged" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="{Binding Selection}" ></DataGridCheckBoxColumn>
<DataGridTextColumn Header="{Binding XmlFile}"></DataGridTextColumn>
<DataGridTextColumn Header="{Binding Result}"></DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.Resources>
<Style TargetType="DataGridCell">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
</Style>
</DataGrid.Resources>
</DataGrid>
ViewModel 代码
public string Selection
{
get { return "Selection"; }
}
public string XmlFile
{
get { return "Xml File"; }
}
public string Result
{
get { return "Result"; }
}
private DataTable CreateDataSource()
{
var dt = new DataTable();
var dc = new DataColumn(Selection, typeof(bool));
dt.Columns.Add(dc);
dc = new DataColumn(XmlFile, typeof(string));
dt.Columns.Add(dc);
dc = new DataColumn(Result, typeof(string));
dt.Columns.Add(dc);
return dt;
}
在其中填充数据后,我正在使用此数据表作为我的网格的源。
我希望当我运行我的应用程序时,我应该能够看到一个包含 3 列的数据网格,其标题为 Selection、XmlFile 和 Result,作为每个绑定值。但我看到的只是没有列的网格。谁能帮我理解这有什么问题?
我还想将数据源GridDataSource 附加到网格。该数据表有 3 列与网格列和一些相关数据同名。当我在数据表中加载一些数据并通知它查看时,我看到已经存在 3 个空列,然后是我的数据表的更多 3 列。谁能帮我理解我的代码有什么问题。如果您需要更多信息,请告诉我。
编辑
我还注意到,当我的 AutoGenerateColumns 标记设置为 true 时,我会在 DataGrid 中看到我的数据表的另外 3 列以及 3 个空列。而当 AutoGenerateColumns` 标签设置为 false 时,我看不到任何数据,只看到 3 个空列。
【问题讨论】:
-
你能发布底层虚拟机吗?您是否在调试窗口中收到任何
BindingExpression错误? -
查看编辑....出去吃午饭一个小时 :)
-
享用午餐 -
BindingExpression错误是怎么回事? -
调试时我没有收到任何错误......
标签: .net wpf xaml wpf-controls wpfdatagrid