gpt4 book ai didi

c# - 更新 DataGridCell 的绑定(bind)值时创建动画

转载 作者:行者123 更新时间:2023-12-03 10:28:55 25 4
gpt4 key购买 nike

所有我有以下DataGrid

<DataGrid x:Name="resourceDataGrid" 
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
AutoGenerateColumns="false"
GridLinesVisibility="None"
RowHeaderWidth="0"
CanUserAddRows="True"
CanUserDeleteRows="True"
ItemsSource="{Binding Path=Resources,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
IsAsync=True}">
<DataGrid.Columns>
<DataGridTextColumn Header="KeyIndex" Binding="{Binding KeyIndex}" IsReadOnly="True"/>
<DataGridTextColumn Header="FileName" Binding="{Binding FileName}" IsReadOnly="True"/>
<DataGridTextColumn Header="ResourceName" Binding="{Binding ResourceName}" IsReadOnly="False"/>
<controls:CollectionTextColumn Collection="ResourceStringList" Visibility="Collapsed"/>
</DataGrid.Columns>
</DataGrid>

当数据集中的一行被删除时,我想重新编号 KeyIndex柱子。当这种重新编号发生时,我想优雅地闪烁更新的单元格,让用户知道然后这些值被更新。

我对 WPF 和 MVVM 还比较陌生,我不确定如何“倾听”这种值(value)变化。我的第一个想法是我不需要新的 DependencyProperty对于这项工作,我只需连接到 SourceUpdated 就可以做到这一点属性使用 DataTrigger但目前尚不清楚如何做到这一点。我试图定义以下
<Style x:Key="readOnlyCellUpdatedStyle" 
TargetType="{x:Type DataGridCell}"
BasedOn="{StaticResource {x:Type DataGridCell}}">
<Style.Triggers>
<DataTrigger Binding="ContentUpdated" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
To="1"
Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
To="0.25"
Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>

但绑定(bind)到 ContentUpdated ViewModel 中每个项目的属性远非理想。 做我想做的事的正确方法是什么?

谢谢你的时间。

最佳答案

SourceUpdated这是我过去的做法,但您需要确保已设置 NotifyOnSourceUpdatedBinding 上为真.就像是:

<DataGridTemplateColumn>
<DataGridTemplateColumn.Template>
<DataTemplate>
<TextBlock Text="{Binding KeyIndex, NotifyOnSourceUpdated=True, Mode=OneWay}">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<EventTrigger RoutedEvent="Binding.SourceUpdated">
...
</EventTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.Template>
</DataGridTemplateColumn>

关于c# - 更新 DataGridCell 的绑定(bind)值时创建动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18115193/

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