2016-05-30 6 views
3

私のテーブルの詳細ビューの形のWPFフォーム上にデータソースがあります。特定の行を検索するときに、バインドされたテキストボックスで更新する必要がありますが、空白だけが表示されます。例えばWPFのデータセットへのビューの更新

 System.Windows.Data.CollectionViewSource employeesViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("employeesViewSource"))); 
     Yello.YelloDataSet yelloDataSet = ((Yello.YelloDataSet)(this.FindResource("yelloDataSet"))); 
     var adapter = new YelloDataSetTableAdapters.EmployeesTableAdapter(); 

     var row = yelloDataSet.Employees.Select("ID='11'"); 
     employeesViewSource.View.MoveCurrentTo(row); 

私の場合は、操作を行います。

 System.Windows.Data.CollectionViewSource employeesViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("employeesViewSource"))); 
     employeesViewSource.View.MoveCurrentToNext(); 

それはバインディングと完全と更新動作します。私は間違った機能を使っているのですか、何か不足していますか?

答えて

1

yelloDataSetから行を選択してから、その行に移動しようとすると、employeesViewSourceにあると思いますが、データが同じではないという問題があります。 CollectionViewSourceの行に移動するには、コレクション内で検索する必要があります。ですから、このような何かやる:

var row = employeesViewSource.View.OfType<DataSet>().Select("ID='11'"); 
employeesViewSource.View.MoveCurrentTo(row); 

編集

を[OK]を、私は実際にコードをしようとせず答えて、私は間違っていました。次のコードを試してみてください:

var row = employeesViewSource.View.OfType<DataRowView>() 
      .Where(x => x.Row.Field<string>("ID") == "11") 
      .FirstOrDefault(); 
employeesViewSource.View.MoveCurrentTo(row); 

しかし、どのタイプがCollectionViewSourceであるかによって異なります。私はDataTableで試してみました。たとえば、データセットの場合は変更される可能性があります。これがうまくいかない場合は、ソースの種類を教えてください。

+0

ありがとうございますが、employeesViewSourceにはselectメソッドがありません。見つけられないものです。 –

+0

私は間違いをしました。 'Select'を使う前に' CollectionViewSource'をキャストしなければなりません。更新されたコード@MagnusWirström – Pikoh

+0

これは私にこのエラーを与えます:CS0411 \tメソッド 'Enumerable.Select (IEnumerable 、Func )の型引数は、その使用から推論できません。型引数を明示的に指定してみてください。 –

関連する問題