初学者问题。XAML
我的 WPF 表单中有以下内容。
<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>
视图模型代码
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 列和 headers 的数据网格Selection
,XmlFile
并且Result
按照绑定值。但我看到的只是没有列的网格。谁能帮我理解这有什么问题?
我还想将数据源附加GridDataSource
到网格。该数据表有 3 列与网格列和一些相关数据同名。当我在数据表中加载一些数据并通知它查看时,我看到已经存在 3 个空列,然后是我的数据表的更多 3 列。谁能帮我理解我的代码有什么问题。如果您需要更多信息,请告诉我。
编辑
我还注意到,当我的AutoGenerateColumns
标签设置为 true 时,我会在 DataGrid 中看到我的数据表的另外 3 列以及 3 个空列。当 AutoGenerateColumns` 标记设置为 false 时,我看不到任何数据,只看到 3 个空列。