Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DateGridTextColumn禁用空值_C#_Wpf_Data Binding_Datagridtextcolumn_Compositecollection - Fatal编程技术网

C# DateGridTextColumn禁用空值

C# DateGridTextColumn禁用空值,c#,wpf,data-binding,datagridtextcolumn,compositecollection,C#,Wpf,Data Binding,Datagridtextcolumn,Compositecollection,我有一个DataGridTextColumn,它绑定了一个4的CompositeCollection 其中一个DataGridTextColumn,绑定方式如下: <DataGrid x:Name="DonneesBrutes" IsReadOnly="True" ItemsSource="{Binding Path=.cmpc}" Margin="10,65,0,0" AutoGenerateColumns="False" EnableRowVirtualization="True" R

我有一个DataGridTextColumn,它绑定了一个4的
CompositeCollection

其中一个
DataGridTextColumn
,绑定方式如下:

<DataGrid x:Name="DonneesBrutes" IsReadOnly="True" ItemsSource="{Binding Path=.cmpc}" Margin="10,65,0,0" AutoGenerateColumns="False" EnableRowVirtualization="True" RowDetailsVisibilityMode="VisibleWhenSelected">
            <DataGrid.Columns>
                <DataGridTextColumn x:Name="Ligne" Width="*"  Binding="{Binding Path=.Remarque}" Header="Ligne" IsReadOnly="True"></DataGridTextColumn>

其中,cmpc是我的
复合收集
,而Ligne不能获取空值。 问题是,我接受了很多空值,如此屏幕截图中所示: 我怎么能忽略每一行的空值呢?对于
DataGridTextColumn
,是否存在类似
IsNullAble=false的内容?

下面是一个简单的示例(已测试)。由于触发器的原因,您将看不到第二行。我使用int值,所以我比较触发器中的20。在您的情况下,请使用
x:Null
。 你也可以用同样的技巧

XAML:

<Window x:Class="DataGridTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dataGridTest="clr-namespace:DataGridTest"
        Title="MainWindow" Height="350" Width="525">
    <DataGrid AutoGenerateColumns="True">
    <DataGrid.RowStyle>
        <Style TargetType="{x:Type DataGridRow}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding X}" Value="20">
                    <Setter Property="Visibility" Value="Collapsed"></Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>

        <DataGrid.Items>
            <dataGridTest:Test X="10" Y="5" />
            <dataGridTest:Test X="20" Y="10" />
        </DataGrid.Items>
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding X}" />
            <DataGridTextColumn Binding="{Binding Y}" />
        </DataGrid.Columns>
    </DataGrid>
</Window>

代码隐藏:

namespace DataGridTest
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }

    public class Test
    {
        public int X { get; set; }
        public int Y { get; set; }
    }
}
命名空间DataGridTest { /// ///MainWindow.xaml的交互逻辑 /// 公共部分类主窗口:窗口 { 公共主窗口() { 初始化组件(); } } 公开课考试 { 公共整数X{get;set;} 公共整数Y{get;set;} } }
是否要避免显示
Remarque
属性为
null
的每一行?是的,这正是我的目标。我看到的第一件事是
AutoGenerateColumns=“True”
我不能这样做,因为这些列是由我从
CompositeCollection
绑定生成的,我不能(我想)自动生成。而且,我真的不明白你做了什么。这是否仅适用于前20个值?(对不起,我对c#developing很陌生)谢谢你的帮助@Nikaya你不需要关心其他事情。只需查看
DataGrid.RowStyle
DataTrigger
。将
DataTrigger
更改为类似于
Binding=“{Binding Remarque}”
Value=“{x:Null}”
的内容。它非常完美,这正是我想要的。我将了解一下RowStyle和Trigger属性,以充分了解我们可以使用它们做什么。