Hi Christian,
Thank you for trying. I am using Datagrid version 3.1.9069.1401. But I actually did the exact same thing as you and initialize the Resuts property in the TestPageDataContext constructor. And yes, the datagrid gets fill and display the data correctly, but what about the filter? Have you tried to configure a custom autofiltercontrol and see if it contains filter values. My problem is there.
Here is how I configured it:
<Page.Resources>
<xcdg:DataGridCollectionViewSource x:Key="cvs_results"
Source="{Binding Results}"
AutoFilterMode="And"
AutoCreateItemProperties="False"
DefaultCalculateDistinctValues="False"
DistinctValuesConstraint="Filtered">
<xcdg:DataGridCollectionViewSource.ItemProperties>
<xcdg:DataGridItemProperty Name="RuleID"
Title="Rule"
CalculateDistinctValues="True">
</xcdg:DataGridItemProperty>
<xcdg:DataGridItemProperty Name="RuleNumber"
Title="Number"
CalculateDistinctValues="True">
</xcdg:DataGridItemProperty>
</xcdg:DataGridCollectionViewSource.ItemProperties>
</xcdg:DataGridCollectionViewSource>
</Page.Resources>
<xcdg:AutoFilterControl x:Name="ruleAutoFilterControl"
AutoFilterColumn="{Binding ElementName=grid, Path=Columns[RuleNumber]}"
AutoFilterContext="{Binding ElementName=grid, Path=(xcdg:DataGridControl.DataGridContext)}">
<xcdg:AutoFilterControl.Template>
<ControlTemplate TargetType="{x:Type xcdg:AutoFilterControl}">
<ComboBox x:Name="PART_DistinctValuesHost"/>
</ControlTemplate>
</xcdg:AutoFilterControl.Template>
</xcdg:AutoFilterControl>
If in the contrary I do the following, it works perfectly:
<xcdg:DataGridCollectionViewSource x:Key="cvs_results"
Source="{Binding Source={x:Static local:TestPage.Data}, Path=Results}"
AutoFilterMode="And"
AutoCreateItemProperties="False"
DefaultCalculateDistinctValues="False"
DistinctValuesConstraint="Filtered">
<xcdg:DataGridCollectionViewSource.ItemProperties>
<xcdg:DataGridItemProperty Name="RuleID"
Title="Rule"
CalculateDistinctValues="True">
</xcdg:DataGridItemProperty>
<xcdg:DataGridItemProperty Name="RuleNumber"
Title="Number"
CalculateDistinctValues="True">
</xcdg:DataGridItemProperty>
</xcdg:DataGridCollectionViewSource.ItemProperties>
</xcdg:DataGridCollectionViewSource>
</Page.Resources>
Code behind:
private static TestPageDataContext _data = null;
public static TestPageDataContext Data
{
get
{
if (null == _data) _data = new TestPageDataContext();
return _data;
}
set { _data = value; }
}
So they only difference is the Collection view source binding. There must be something I don't see.