【问题标题】:How to perform Row update in WinUI3 Datagrid如何在 WinUI3 Datagrid 中执行行更新
【发布时间】:2022-07-22 08:33:46
【问题描述】:

我是 WinUI 新手,在我的 WinUI3 应用程序中使用 CommunityToolkit.WinUI.UI.Controls。我在哪里使用 Datagrid。其中一列生成如下:

 <controls:DataGridTextColumn Binding="{Binding MessageId}" Header="Id" />

我还为网格中的操作生成了一个按钮列,如下所示:

 <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>

我的问题是,这个按钮应该只基于源中的“状态”列可见。在互联网上搜索后,我找不到任何解决方案。我曾经在 WinForm 应用程序中使用row_update,我们可以在其中使用基于任何单元格值的条件可见性。

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

【问题讨论】:

    标签: winui-3 windows-community-toolkit


    【解决方案1】:

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

    BoolToVisibilityConverter.cs

    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();
    }
    

    您的数据网格

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多