【问题标题】:ICollectionView CurrentPosition is -1ICollectionView 当前位置为 -1
【发布时间】:2015-04-30 08:00:09
【问题描述】:

我有一个来自ObservableCollectionICollectionView

 WorkingSpreadOrderCollevtionView = CollectionViewSource.GetDefaultView(SpreadOrderCollection);

我的SpreadOrderCollection 不为空,可以看出SourceCollection 计数为1

但是为什么CurrentPosition-1,我认为正因为如此,即使我将WorkingSpreadOrderCollevtionView 绑定到它的ItemSourcceDataGrid 也没有显示任何内容。

我可以知道这里可能的错误是什么吗?

================================================ ===========

编辑:xamlbinding 如下,DataContext 肯定是正确的,因为同一 ViewModel 中的另一个 public 属性正确绑定到同一 xaml

<DataGrid ItemsSource="{Binding WorkingSpreadOrderCollevtionView}" CanUserAddRows="False"  AutoGenerateColumns="True" >
</DataGrid>

另外,我可以看到数据网格中自动生成的Columns,但我只是看不到记录。

================================================ ===

更新:我发现了愚蠢的错误。我已经两次调用GetDefaultView 并认为创建了视图的两个不同副本,因此在“两个”副本上应用了两个过滤器。第二个过滤器阻止记录显示在DataGrid 中。我现在所做的是按照以下方式创建一个新视图,

WorkingSpreadOrderCollevtionView = new CollectionViewSource { Source = SpreadOrderCollection }.View;

【问题讨论】:

  • 你能显示你正在使用的 XAML 吗?

标签: c# wpf xaml icollectionview


【解决方案1】:

CurrentPosition 通常表示选中的记录。 Selector 后代可以将他们的SelectedItem/SelectedItemIndexICollectionView.CurrentItem/CurrentPosition 同步。

-1 值仅表示选择器/集合视图中没有选定的项目。

这与DataGrid为空的问题无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2011-11-27
    • 2017-03-16
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多