gpt4 book ai didi

wpf - IValueConverter 仅在 DataGrid 上滚动时被调用

转载 作者:行者123 更新时间:2023-12-03 17:52:02 25 4
gpt4 key购买 nike

查看以下 XAML 片段:

<DataGridTextColumn.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Background" Value="White"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Block.TextAlignment" Value="Center"/>
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush>
<SolidColorBrush.Color>
<MultiBinding Converter="{StaticResource VAPBrushConverter}">
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type DataGridCell}}"/>
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}"/>
</MultiBinding>
</SolidColorBrush.Color>
</SolidColorBrush>
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.CellStyle>

只有当我在数据网格上滚动时才会调用 IValueConverter。在 DataGridCell 内部有一个 TextBlock,并且唯一一次调用 IValueConverter 是 TextBlock.Text 属性为 DependencyProperty.UnsetValue 时。

有人可以告诉我何时调用 IValueConverter,如果我目前可以用我的代码做些什么来解决这个问题?澄清一下 - 问题是当我在 DataGrid 上滚动时,只有 IValueConverter 设置了背景。

最佳答案

我通过将绑定(bind)设置为项目源中的当前元素解决了这个问题,如下所示:

<Binding Path="."/>
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}"/>

看起来问题在于仅在调用 get/set 访问器时才调用 IValueConverter。我在绑定(bind)中传递了 DataGridCell,该绑定(bind)仅在滚动时获取/设置。每当值更改时,单元格的内容就会被获取/设置,因此这意味着 IValueConverter 将相应地更新。

关于wpf - IValueConverter 仅在 DataGrid 上滚动时被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19211535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com