2

私はWPFを初めて使用し、その強力なデータバインディング機能に驚いています。ただし、多数の記事を読んだ後、プロジェクトにどのオプションを使用すればよいかわかりません。

===========プロジェクトの詳細(ローカルに保存されたツイートアーカイブの表示を含む):

  • データは、ローカルに保存されたTwitterツイートで構成されます。1つのファイルにJSON形式で保存された17,000を超えるツイートです(プロジェクトにインターネット接続は使用されていません)。

  • JSON.Netを使用してファイル内のJSONを解析し、各ツイートの数十のJSON名前/値ペアがツイートオブジェクトのリストに割り当てられます(各ツイートのJSONデータをツイートオブジェクトに変換します)。

  • 私のプログラムは、2つのコントロールを使用してデータを表示します。

WPFコントロール#1(スプレッドシートと同様):各ツイートをグリッドパターンとテキスト形式で行単位で表示します(17,000行以上のデータがあります)。数十のフィールドがあるため、ユーザーは、表示される限られた数の列(5程度)に表示するフィールド(日付、送信者、テキストなど)を選択できます。ユーザーは(Linqを介して)ツイートの行を検索、並べ替え、選択できます。

WPFコントロール#2:コントロール#1で選択された各ツイートを、Twitterに表示されるのと同じ形式/外観で表示します(たとえば、素敵な色、基本的なテキスト、リンクなどを小さな長方形で表示します-Twitterはツイートの表示方法)。コントロール#1でツイートが選択されていない場合は、スクロールによって17,000以上のツイートがすべて表示されます。

バインド:ユーザーがコントロール#1でツイートの行を選択すると、コントロール#2が即座に更新され、選択したツイートだけが素敵なグラフィック形式で表示されます。その逆も同様です(つまり、コントロール#でツイートを選択します)。 2は、コントロール#1)で選択されたツイートのデータを示しています。コントロール#1とコントロール#2に関連するツイートが表示される日付を選択するためのカレンダーもあります。

コントロール#1にCollectionViewSourceを使用することを考えていましたが、ユーザーがツイートを削除したり、ツイートオブジェクトのリストに追加したりすることはないため、正しくないようです。ただし、17,000以上のデータ行を使用してすべてをスムーズにスクロール、並べ替え、実行し、コントロール#2に表示されたツイートにバインドしようとすると、他のオプションでは処理できない場合があります(必要に応じて一部のオプションを仮想化する方法を理解しています) )。おそらくDataGridが進むべき道ですか?

==== 問題:WPFコントロール#1および#2には何を使用する必要がありますか?

コントロール#1のオプションには、CollectionViewSource、DataGrid、ListView、ListBoxが含まれます。

コントロール#2のオプションは次のとおりです。画像をホストするリストボックス?

お手数をおかけしますが、よろしくお願いいたします。

4

1 に答える 1

0

編集していない場合は、ListView GridView(列をサポート)に移動してListにバインドします(ListはLINQからの動的出力である可能性がありますが、それでもListです)。CollectionViewSourceは、実際には編集ではなく、フィルターと並べ替えに関するものです。LINQを使用する場合は、CollectionViewSourceを画像に配置する必要があります。マルチマスターBのマスターとAのBマスターは少しそこにあります-多分その論理を再考してください。virtualiztionを使用すると、17000のツイートを行うことができます。

于 2012-04-04T02:31:55.913 に答える