因此,我有以下场景A 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列表,一切正常,我可以获得所有想要的信息。但是,由于我访问的是BaseClass列表而不是DerivedClass,GridViewDataColumn无法发挥其魔力并允许列过滤器工作。漏斗图标/按钮未出现。除此过滤器功能外,所有信息都正确显示在网格中
我试着定义数据模板,数据路径,过滤标志,到目前为止什么都没有。
1条答案
按热度按时间w6mmgewl1#
所以,在经历了大量的撞墙和砸石头之后,我终于找到了一个解决方案。但在此之前,为了简单起见,我之前没有说的是,我有一个第三个派生类,我想访问的是它
字符串
第一件事是把我想访问的东西移到基类的第一个派生中
型
在XAML网格中,我必须将DataType和FilterPath添加到列中。
型