提问人:Coelho 提问时间:10/26/2023 最后编辑:Coelho 更新时间:10/30/2023 访问量:23
尝试从派生类向 GridViewDataColumn 添加筛选器
Trying to add a filter to a GridViewDataColumn from a derived class
问:
所以我有以下场景 带有列表的 binging 的 RadGridView
这是我的 XAML
<telerik:RadGridView
x:Name="grid"
Grid.Row="0"
ItemsSource="{Binding BaseClassesList}"
IsFilteringAllowed="True"
IsReadOnly="true">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Name}" />
<telerik:GridViewDataColumn>
<DataTemplate DataType="{x:Type DerivedClass}">
<TextBlock Text="{Binding WhatIWant}"/>
</DataTemplate>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
这是我的 ViewModel
public List<BaseClass> BaseClassesList {get;set;}
这是我的基类
public class BaseClass
{
public string Name{ get; set; }
public string Filler1{ get; set; }
public string Filler2{ get; set; }
}
这是我的 DerivedClass
public class DerivedClass : BaseClass
{
public string WhatIWant{ get; set; }
}
正如你所看到的,我正在绑定到一个基类列表,一切正常,我可以得到我想要的所有信息。 但是,由于我正在访问 BaseClass 而不是 DerivedClass 的列表,因此 GridViewDataColumn 无法发挥其魔力并允许列筛选器工作。漏斗图标/按钮不显示。 除此筛选器功能外,所有信息都正确显示在网格中
我尝试定义 DataTemplate、DataMemberPath、Filtering 标志,但到目前为止什么都没有。
答:
0赞
Coelho
10/30/2023
#1
因此,经过大量的墙壁撞击和岩石砸碎,我最终找到了解决方案。 但在此之前,为了简单起见,我之前没有说的是我有第三个派生类,我想访问的是它
public class DerivedDerivedClass : DerivedClass
{
public string WhatIWant{ get; set; } //Removed from here
}
第一件事是将我想要访问的内容移动到基类的第一个派生中
public class DerivedDerivedClass : DerivedClass
{
public string WhatIWant{ get; set; } //Removed from here
}
public class DerivedClass : BaseClass
{
public string WhatIWant{ get; set; } //Placed here
}
在 XAML 网格中,我必须将 DataType 和 FilterMemberPath 添加到该列中。我最初在 DataTemplate 上有 DataType,但这不起作用
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding Name}" />
<telerik:GridViewDataColumn DataType="{x:Type DerivedClass}" FilterMemberPath="WhatIWant">
<DataTemplate DataType="{x:Type DerivedClass}"> //DataType should not be defined here
<TextBlock Text="{Binding WhatIWant}"/>
</DataTemplate>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
评论