WPF下使用XAML基于逻辑判断动态展示不同内容的可行性咨询
结论
仅通过XAML侧调整即可实现该需求,无需修改ViewModel层的逻辑,符合MVVM分层原则,视图层的展示逻辑不需要侵入业务层代码。
实现方案
你可以在DataTemplate中同时放置完成状态的图标和未完成状态的文本,通过绑定IsCompleted属性的触发器切换两者的可见性即可,修改后的参考代码如下:
<DataGridTemplateColumn Header="Status"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Grid VerticalAlignment="Center" HorizontalAlignment="Center"> <!-- 原有完成状态图标 --> <Path x:Name="CompletedIcon" Data=" " Fill="# " Stretch=" " Height="" Width=""/> <!-- 新增未完成状态文本 --> <TextBlock x:Name="IncompleteText" Text="In complete" Visibility="Collapsed"/> </Grid> <DataTemplate.Triggers> <DataTrigger Binding="{Binding IsCompleted}" Value="False"> <Setter TargetName="CompletedIcon" Property="Visibility" Value="Collapsed"/> <Setter TargetName="IncompleteText" Property="Visibility" Value="Visible"/> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn>
该方案默认展示完成状态的Path图标,当IsCompleted为False时自动隐藏图标、显示未完成文本,和你现有业务逻辑完全兼容。
内容的提问来源于stack exchange,提问作者dev_tech
相关产品推荐
相关产品推荐

