2009-06-05 11 views
1

私はWPFでListBoxにデータバインディングしているオブジェクトを持っています。基本的に私は、全体の変数のためのDataTemplateを持って、その後、オプト/値のコンボは、それが自分のDataTemplateのしているDataTemplate内にデータバインドされたStackPanelを表示する

 
------------------------------- 
| Name | Opt1 | Value1 | 
|   | Opt2 | Value2 | 
|   | Opt3 | Value3 | 
|   | Opt4 | Value4 | 
------------------------------- 

:ここでは、最終結果がどのように見えるかです。私は可能な限り単純に値のリストを表示しようとしています。

<Label Content="{Binding Path=Identifier.Name, Mode=OneWay}" /> 
<ListView Grid.Column="1" HorizontalAlignment="Stretch" 
      ItemsSource="{Binding Path=Values, Mode=OneWay}" /> 

値のための結合は、現在2 <Label>年代でのみ<Grid>であり、私が本当にしたいすべてがする場合には、リストビューは、こうした国境スタイリング、選択、そのように、私は見てはいけない機能をたくさん持っていますリストを使用してデータバインドすることができます。

アイテムをスタックパネルにデータバインドしようとしましたが、XAMLで動作させることができませんでした。私は別の解決策は、私がやっていることをやって、リストビューの<Style>を書き換えることだと思います。これを行う正しい方法に関する提案はありますか?

答えて

7

確かにListBoxでできることのように聞こえますが、選択可能にしたくない場合はItemsControlと言えます。 IsSharedSizeScopeのプロパティを使用して、列を整形して維持することもできます。また、ListBoxリンクの一番下にあるInheritance Higharchyを見ると、さまざまなシナリオに必要なリストの種類を判断するのに役立ちます。

<DockPanel> 
    <Label Content="{Binding Path=Identifier.Name, Mode=OneWay}" /> 
    <ListBox ItemsSource="{Binding Path=Values, Mode=OneWay}" 
      Grid.IsSharedSizeScope="True"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
     <Grid> 
      <Grid.ColumnDefinitions> 
      <ColumnDefinition SharedSizeGroup="OptionColumn" /> 
      <ColumnDefinition SharedSizeGroup="ValueColumn" /> 
      </Grid.ColumnDefinitions> 
      <TextBlock Grid.Column="0" Text="{Binding Option}" /> 
      <TextBlock Grid.Column="1" Text="{Binding Value}" /> 
     </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
    </ListBox> 
</DockPanel> 
+0

ItemsControlには、私がまさに必要だった:

はこのような何かを試してみてください。ありがとう。 –

関連する問題