【发布时间】:2015-03-09 11:51:04
【问题描述】:
我正在用来自数据库的信息填充我的 DataGrid。信息显示正常。我想将所有内容都保留为只读少一列。我不希望该列标题可编辑。只有它下面的行。例如,根据下图,我希望能够编辑列 Participants 行内容 5、5、5 和 3。
我没有看到任何可以单独选择行或列设置为只读的选项。我只看到一个将整个 DataGrid 设置为只读的选项。我试图循环并尝试将只读设置为所需的列,但不能。请指教。谢谢。
看到了一些示例,您可以通过 XAML 单独声明哪一列是只读的,但这些是预先确定的数据的手动输入。我正在尝试使用自动生成的列填充 DataGrid,并且数据来自数据库,我想以编程方式进行。
Connection connection = new Connection();
public static DataTable dt = new DataTable();
private void FillTable(DataGrid dataGrid)
{
//Connecting to database
connection.ConnectToDB(table, dt);
dataGrid.ItemsSource = dt.DefaultView;
foreach (DataGridColumn column in dataGrid1.Columns)
{
if (column.DisplayIndex == 1)
{
dataGrid1.IsReadOnly = true;
}
}
//dataGrid1.IsReadOnly = true;
}
XAML:
<DataGrid x:Name="dataGrid1" Canvas.Left="10" Canvas.Top="10" Height="auto" Width="auto" MaxHeight="400" AutoGenerateColumns="True" Style="{DynamicResource DataGridStyle1}"/>
【问题讨论】:
-
列是自动生成的吗?