2012-01-31 6 views
0

私のアプリでマスターディテールプレゼンテーションをしようとしています:リストボックス内のアイテムを選択すると、その詳細が隣接するコントロールに表示されます。どのような標準のWPFコントロールを使用しますか?

このコントロールには、高さ、幅、重さなどの測定値のリストが表示されます。緑色や赤色のドットや中程度のサイズの画像なども表示されます。リッチテキストもあります。

これらの要素をすべて含むために標準のWPFコントロールを使用します。私はリストボックスを使用することを考えていますが、使用するより良いコントロールがあるのだろうかと思っています。

私の主な考慮点は、コーディングの容易さ、場合によってはコードの効率性です。おかげさまで

答えて

1

リストボックスは、AppearanceのためにDataTemplateを使用して調整できるアイテムのリストを示します。この場合、選択した項目の詳細が表示されます。実際には、現在のUIにネストされたGridなどのコンテナを使用し、選択された項目の詳細を含むスタックパネルのセットを持っています。

<Grid> 
    <StackPanel> 
     <StackPanel Orientation="Vertical"> 
      <TextBlock>Detail1</TextBlock> 
      <TextBox></TextBox> 
     </StackPanel> 
     <StackPanel Orientation="Vertical"> 
      <TextBlock>Detail2</TextBlock> 
      <TextBox></TextBox> 
     </StackPanel> 
    </StackPanel> 
</Grid> 

これが唯一の提案ですが、ポイントは、コンテナを使用し、コンテナ内のコントロールのセットを使用することである - などのTextBlock、テキストボックス、チェックボックス(ブール詳細)、...これはあなたが使用できるようになります選択された項目の特定のデータフィールドを表すのに必要な制御タイプ。

1

類似のアイテムのコレクションを持たず、ある時点で1つ以上のアイテムを「選択」しない限り、リストボックスを使用したくない場合。それはあなたが細部の部分にしたいものではないように聞こえる。

マスターリストにはコレクションがあります。マスターリストのSelectedItemをviewmodelのプロパティにバインドする必要があります。次に、同じプロパティをUIの詳細セクションにバインドすることができます。マスターリストの選択が変更されると、詳細UIが自動的に更新され、変更が反映されます。

<ListBox x:Name="masterList" ItemsSource="{Binding MyItems}" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}"></ListBox> 
<UserControl x:Name="detailsControl" DataContext="{Binding MySelectedItem}"> </UserControl > 
関連する問題