【发布时间】:2021-03-16 11:49:41
【问题描述】:
我有一个 WPF/XAML DataGrid,其中一列包含图像。我希望该列的宽度(以及图像的大小)由不在 DataGrid 中的 Slider 控制。 (我知道这本身就存在问题,但我找到了一个很好的解决方案here。)问题是,滑块值和列宽度之间的绑定似乎非常脆弱。如果用户调整父窗口的大小,导致 DataGrid 调整大小,则绑定会中断。如果我在 DataGrid 中设置 VerticalScrollBarVisibility="Auto",然后用户调整滑块以使 DataGrid 的滚动条需要出现,那么绑定就会中断。一旦绑定被破坏,除非用户关闭窗口并重新打开它,否则它不会再回来。
这里是相关的 DataGrid 列定义:
<DataGridTemplateColumn Width="{Binding Source={x:Reference PictureSizeSlider}, Path=Value}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Name="ImageBox" Stretch="Uniform" Source="{Binding Image}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
这里是 Slider 的定义(在不同的 Grid 中):
<Slider Grid.Column="1" Name="PictureSizeSlider" Minimum="10" Maximum="255" Value="100" IsMoveToPointEnabled="True"/>
谁能告诉我为什么绑定如此脆弱,以及如何使它变得健壮?
【问题讨论】:
标签: wpf xaml data-binding datagrid controls