2017-05-01 21 views
1

私の現在の状況では、私のアプリケーションに表示するリストがあります。このリストは2つのものに基づいている必要があります。 Description、および各要素の現在の状態に基づく色です。課題は、それぞれのテーブルに説明と色が設定されていることです。 itemsource/bindingcontextを2つの異なるオブジェクト/テーブルに設定する方法はありますか?あるいは、この問題を解決する別の方法がありますか?複数のオブジェクトへのバインド

これは説明がアクセス可能なテーブルに結合する私のXAMLファイルです:postListviewの背後にある私のコードでは

<StackLayout> 
     <ListView x:Name="postListView" ItemSelected="Handle_ItemSelected" > 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <TextCell Text="{Binding Description}" /> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 
    </StackLayout> 

は、テーブルのいずれかに設定されます。

PostListView.itemSource = _chekc;

私は2つの異なるitemsourcesを設定することができないため、他のテーブル_answerの色にバインドできません。

これにはどのような回避策がありますか?

答えて

3

これは一般的な問題です。複数のテーブルのデータの組み合わせであるリストを表示する必要があります。 ItemsSourceを複数のソースに設定できないという事実は、ListViewのバグではありません。それはあなたの設計上の制限です...これを適切に処理するビューモデルを構築する必要があります状況。

これを行う1つの方法は、2つのテーブルの色と説明のペアであるPostRowViewクラスと、PostRowViewsを管理するObservableCollectionを持つことです。 ListViewのItemsSourceをobservableコレクションにバインドします。

+2

この回答から最も重要なことは、ビューを適切に作成する必要性と要件です。 WPFで作業するほとんどの人は、MVVMのフロントエンドアーキテクチャに従います。まだ見ていない場合は –

+2

ViewModelという規約があります。そして、ViewModelはデータをフィルタリング/結合/前処理してビューを簡素化する必要があります。 –

+0

これは私の質問に答える! PostRowViewクラスに色と説明をペアリングする方法の例がありますか? – Seb

関連する問題