gpt4 book ai didi

c# - DataTemplate 中的 VisualBrush 不会重绘

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:33 25 4
gpt4 key购买 nike

我有一个 ListView 来显示附件,每个附件都有一个删除按钮。当我更改列表的 ItemSource 时(即当查看具有不同附件的另一个项目时),删除按钮的图标不再绘制。

这是模板

   <DataTemplate x:Key="attachmentListData">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>

</Grid.ColumnDefinitions>
<Label Grid.Column="0">
<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding Path=filename}" TextDecorations="{Binding Path=deleted, Converter={StaticResource deletedStrikethroughConverter}}" />
</Label>
<Button Grid.Column="1" Visibility="{Binding Path=deleted, Converter={StaticResource attachmentDeleteButtonVisibilityConverter}}" Style="{DynamicResource MetroCircleButtonStyle}" Width="40" Height="40" Click="onDeleteAttachmentClicked">
<Rectangle Fill="Black" Width="15" Height="15">
<Rectangle.OpacityMask>
<VisualBrush Visual="{StaticResource appbar_close}" Stretch="Fill" />
</Rectangle.OpacityMask>
</Rectangle>
</Button>
</Grid>
</DataTemplate>

通过在屏幕的其他位置绘制 appbar_close 图标,但将可见性设置为隐藏,我已经能够解决这个问题。如果图标不在屏幕的其他位置,则在我更改 ItemSource 后图标将停止绘制。

显然这个变通办法是 hacky,但确保图标仍然显示的更好方法是什么?

最佳答案

我认为您缺少 DataTemplate 上的 DataType 属性。 http://msdn.microsoft.com/en-us/library/system.windows.datatemplate.datatype.aspx .如果这没有在您绑定(bind)按钮可见性的行上给您带来绑定(bind)错误,我会感到惊讶。

关于c# - DataTemplate 中的 VisualBrush 不会重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13464424/

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