如何使用 CaretVisible 使 DataGridColumn 只读?
How to make DataGridColumn ReadOnly but with CaretVisible?
有没有办法让 DataGrid 的列处于只读模式但插入符可见?使用 IsReadOnlyCaretVisible 属性 时类似于文本框?
如果您设置 IsReadOnly 属性 列将被禁用并且无法单击该单元格。
<DataGrid ItemsSource="{Binding Customers}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}"></DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Income}" IsReadOnly="True"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
您可以使用 TextBox 创建 DataGridTemplateColumn。参考下面的代码。
<DataGridTemplateColumn Header="Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Name}" IsReadOnly="True" IsReadOnlyCaretVisible="True"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
有没有办法让 DataGrid 的列处于只读模式但插入符可见?使用 IsReadOnlyCaretVisible 属性 时类似于文本框? 如果您设置 IsReadOnly 属性 列将被禁用并且无法单击该单元格。
<DataGrid ItemsSource="{Binding Customers}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}"></DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Income}" IsReadOnly="True"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
您可以使用 TextBox 创建 DataGridTemplateColumn。参考下面的代码。
<DataGridTemplateColumn Header="Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Name}" IsReadOnly="True" IsReadOnlyCaretVisible="True"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>