WPF - 需要在禁用的DataGrid中启用滚动

时间:2014-07-07 09:49:52

标签: c# wpf xaml datagrid

我的DataGrid列正在代码中添加。

当用户完成编辑行并单击“下一步”按钮时,将禁用DataGrid,并且用户将进入下一步,该步骤位于同一视图中。

如果用户有很多行并且需要滚动现在禁用的DataGrid以概览行,则会出现问题。

我已尝试在ScrollViewer中包装DataGrid(绑定到用户单击Next时设置IsEnabled = false的属性),这样可以获得所需的效果但滚动位于DataGrid外部发现很烦人。

我在我的智慧结束时可以真正使用一些帮助我应该如何去做。

我也尝试覆盖ScrollViewer的元数据,这在某种程度上有效但从我读过的内容中不安全。

有什么想法吗?

3 个答案:

答案 0 :(得分:8)

您可以使用IsEnabled属性,而不是使用DataGrid.IsReadOnly属性。

答案 1 :(得分:2)

DataGrid标记为ReadOnly并应用以下样式以使外观像禁用(如果需要)。

<DataGrid.Style>
            <Style TargetType="DataGrid">
                <Style.Triggers>
                    <Trigger Property ="IsReadOnly" Value="True">
                        <Setter Property= "Foreground" Value="Gray"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
</DataGrid.Style>

答案 2 :(得分:0)

我最终在DataGrid上使用IsReadOnly属性并将其绑定到IsEnabled。

这首先是一个明显的问题,因为IsEnabled确实使得DataGrid在只有错误的状态下才是只读的。

所以我创建了一个帮助类来将bool转换为false以反映正确的状态(启用/禁用)。

DataGrid中的组件也具有其IsEnabled属性数据绑定,当DataGrid为只读时,它为我们提供了适当的禁用样式。

感谢帮助人员!