Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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# 如何从数据源选择性地显示datagrid上的某些属性?_C#_Wpf_Binding_Datagrid_Datasource - Fatal编程技术网

C# 如何从数据源选择性地显示datagrid上的某些属性?

C# 如何从数据源选择性地显示datagrid上的某些属性?,c#,wpf,binding,datagrid,datasource,C#,Wpf,Binding,Datagrid,Datasource,我有两个数据网格,都有不同的用途。我目前有一个变量ObservableCollection作为datagrids的数据源 我想做的是,使用一个datagrid以排行榜的方式显示竞争对手,显示他们和他们的时间这是一个类似于排行榜的比赛,最快的时间就是赢家。而且,我希望第二个datagrid可以在积分排行榜中显示用户,显示相同的用户,以及他们在过去多次比赛中累积的所有积分 因此,您可能知道,为datagrid设置数据源允许datagrid为类中的每个变量自动创建列,如下所示。但是,在类中,我希望在一

我有两个数据网格,都有不同的用途。我目前有一个变量ObservableCollection作为datagrids的数据源

我想做的是,使用一个datagrid以排行榜的方式显示竞争对手,显示他们和他们的时间这是一个类似于排行榜的比赛,最快的时间就是赢家。而且,我希望第二个datagrid可以在积分排行榜中显示用户,显示相同的用户,以及他们在过去多次比赛中累积的所有积分

因此,您可能知道,为datagrid设置数据源允许datagrid为类中的每个变量自动创建列,如下所示。但是,在类中,我希望在一列中包含变量,而不是在另一列中,反之亦然。例如,在第一个数据网格中,我需要用户名、VIs、TimeFormated和DQ,在第二个数据网格中,我需要用户名和分数

下面是我正在使用的完整类:

内部级别竞争对手 { 公共整数位置{get;set;} 公共字符串用户名{get;set;} public int VIStart{get;set;} public int VIEnd{get;set;} 公共int VIs{get{return VIEnd-VIStart;} 公共双时间索引{get{return GetTime;}} 公共字符串时间格式{get{return GetFormatTime;}} 公共int重新记录{get;set;} 公共布尔DQ{get;set;} 公共字符串DQReason{get;set;} 公共双倍分数{get;set;} //这里有更多不重要的代码 } 因此,我假设我要做的最好方法是自定义设置datagrid的两个列,因为它们非常具体,但是,我想知道是否有一种方法可以在代码中选择哪些变量显示为列标题

我知道您可以根据问题设置[Browsablefalse],但是,从我所知,它是不可切换的


非常感谢您的指导以及任何提示和建议。谢谢。

用属性装饰源属性并不能解决在一个数据网格中显示特定属性/列而在另一个数据网格中隐藏它的问题

解决这一问题的正确方法是,以编程方式在视图的代码隐藏或XAML标记中明确定义要查看的实际列


自动生成列似乎很方便,但不是很灵活。

是的,经过一些尝试,我逐渐意识到这一点。毕竟,我决定在XAML中显式定义它,因为它正是我所需要的@TimeTravelPenguin:听起来是正确的做法。