加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – WPF根据条件隐藏datagrid中的行

发布时间:2020-12-15 06:57:31 所属栏目:百科 来源:网络整理
导读:我需要根据datagrid中的参数和值隐藏datagrid中的行.我想做这样的事情 foreach (System.Data.DataRowView dr in myDataGrid.ItemsSource){ //Logic to determine if Row should be hidden if (hideRow == "Yes") { //Hide row code }} 我只是无法想象如何实
我需要根据datagrid中的参数和值隐藏datagrid中的行.我想做这样的事情
foreach (System.Data.DataRowView dr in myDataGrid.ItemsSource)
{
   //Logic to determine if Row should be hidden
   if (hideRow == "Yes")
   {
      //Hide row code
   }
}

我只是无法想象如何实际隐藏行.请注意,我不想删除datagrid或项目源的行.

解决方法

如果hideRow不是表的一个字段(即DataGridRow中的一列):
<DataGrid.RowStyle>
    <Style TargetType="{x:Type DataGridRow}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding AnyProp,Converter={StaticResource hiddenConverter}}" Value="True">
                <Setter Property="Visibility" Value="Collapsed"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>

并用您的逻辑实现转换器.绑定变量的类型,上面的AnyProp将在下面是你的属性类型. AnyProp可以是行中的任何列.

[ValueConversion(typeof(yourPropType),typeof(bool))]
public class hiddenConverter: IValueConverter
{
    public object Convert(object value,Type targetType,object parameter,CultureInfo culture)
    {
        if (hideRow == "Yes")
        {
           return true;
        }
        else
        {
           return false;
        }
    }


}

“值”将是AnyProp,它可以用于确定是否显示行的逻辑,或者该决定可以完全基于其他内容,例如示例中的“hideRow”.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读