我有一个ObservableCollection绑定到DataGrid,一切工作正常。我想过滤集合而不必重复访问数据库,因此我决定使用后备集合来存储原始列表,然后公开地将过滤的列表公开给绑定。所以,我有以下代码:绑定到ObservableCollection的副本
_backingMemberList.Clear();
_memberList.Clear();
foreach (Member CurrentMember in ListOfMembers)
{
_memberList.Add(CurrentMember);
_backingMemberList.Add(CurrentMember);
}
_memberList = new ObservableCollection<Member>(_backingMemberList);
,并且绑定是简单的:
<DataGrid Name="dataGridMembers" ItemsSource="{Binding MemberList}" />
现在,由于某种原因,这打破了RowStyle
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="{Binding BindsDirectlyToSource=True, Converter={StaticResource BGColor}}"/>
</Setter.Value>
</Setter>
</Style>
</DataGrid.RowStyle>
我没有得到任何信息在输出窗格中关于绑定是对还是错。我无法弄清楚我做错了什么。
只是为了增加乐趣,我在其他页面上获得了相同的连接,并完全打破了绑定。行甚至不显示。
我的问题是:
- 我在做什么错?
- 失败的是,我该如何调试数据绑定?
所以一切,如果您删除'RowStyle'作品? – 2012-08-11 21:05:39
不行,如果我使用后备集合,RowStyle不起作用。如果我使用原始的ObservableCollection,RowStyle可以正常工作。但无论如何,转换器都能正常工作。 – 2012-08-11 22:43:46