首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WinUI3数据仓库中执行行更新

如何在WinUI3数据仓库中执行行更新
EN

Stack Overflow用户
提问于 2022-07-21 12:21:04
回答 1查看 179关注 0票数 1

我对WinUI很陌生,在我的WinUI3应用程序中使用CommunityToolkit.WinUI.UI.Controls。我用的是达塔格力。其中一个列生成如下所示:

代码语言:javascript
复制
 <controls:DataGridTextColumn Binding="{Binding MessageId}" Header="Id" />

我还为网格中的操作生成了Button列,如下所示:

代码语言:javascript
复制
 <controls:DataGridTemplateColumn Header="Action">
                    <controls:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button Click="SendAsync" CommandParameter="{Binding Path=MessageId}">Send</Button>
                        </DataTemplate>
                    </controls:DataGridTemplateColumn.CellTemplate>
                </controls:DataGridTemplateColumn>
            </controls:DataGrid.Columns>

我的问题是,这个按钮只应该根据来自Source的列"Status“可见。在网上搜索后,我找不到任何解决办法。我曾经在WinForm应用程序上使用WinForm,在那里我们可以根据任何单元格值使用条件可见性。

请向我建议如何在WinUI3中克服这种条件可见性/类似于WinUI3的功能的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-22 00:33:46

您可以创建一个转换器,并像这样控制ButtonVisibility属性。

BoolToVisibilityConverter.cs

代码语言:javascript
复制
public class BoolToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        return ((bool)value) is true
            ? Visibility.Visible
            : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language) => throw new NotImplementedException();
}

您的DataGrid

代码语言:javascript
复制
<Page.Resources>
    <helpers:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
</Page.Resources>
代码语言:javascript
复制
<controls:DataGridTemplateColumn Header="Action">                    
    <controls:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Button
                Click="SendAsync"
                CommandParameter="{Binding Path=MessageId}"
                Visibility="{Binding Status, Converter={StaticResource BoolToVisibilityConverter}}"/>>
                Send
            </Button>
        </DataTemplate>
    </controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73066079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档