多くのItemControl(データグリッドとリストビュー)を使用するアプリケーションを構築しています。簡単に私がうまく働いていObservableCollections、この拡張機能を使用し、バックグラウンドスレッドからこれらのリストを更新するために:私が使用したいと.NET 4.5へのアップグレード:ItemsControlがアイテムソースと矛盾しています
今日は、(今度は.NET 4.5をインストール)VS12をインストール.NET 4.5用に書かれたコンポーネント。私のプロジェクトを.NET 4.5(4.0から)にアップグレードする前に、私のDataGridはworkerthreadから更新されたときにInvalidOperationExceptionをスローし始めました。名前の「(名前)」で同意しないて、CollectionChangedイベントの順序を受け取った例外メッセージ:制御用発電機5「System.Windows.Controls.DataGrid Items.Count」のため
この例外がスローされましたItemsコレクションの現在の状態。以下の相違点が検出された: 累積カウント4が実際のカウント5累積カウント(最後のリセット+ #Addsでカウント - 最後のリセット以降の#Removes)がある。]とは異なる
リプロコード:
XAML:
<Window x:Class="Test1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid ItemsSource="{Binding Items, Mode=OneTime}" PresentationTraceSources.TraceLevel="High"/>
</Grid>
</Window>
はコード:
public partial class MainWindow : Window
{
public ExtendedObservableCollection<int> Items { get; private set; }
public MainWindow()
{
InitializeComponent();
Items = new ExtendedObservableCollection<int>();
DataContext = this;
Loaded += MainWindow_Loaded;
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Task.Factory.StartNew(() =>
{
foreach (var item in Enumerable.Range(1, 500))
{
Items.Add(item);
}
});
}
}
私はMicrosoft .NET Frameworkチームです。 Microsoftのドットコムでnetfx45compatの問題を再現するプロジェクトをお送りください。私は見てみたいと思います。よろしくお願いいたします。Varun Gupta – Varun
この問題で進歩しましたか? Win8デベロッパーボックスには表示されませんが、Win7と.NET 4.5を使用していて、ソフトウェアを使用できないユーザーがいます。 4.5をアンインストールして4.0に移行しようとしています。 – Thomas
確認済み:ロールバックにより問題が解決しました。 – Thomas