DataTemplateの内部データバインドのStackPanelを表示します
-
12-09-2019 - |
質問
私はWPFのListBoxコントロールにデータバインディングてるオブジェクトを持っています。
:ここでは、最終結果がどのように見えるかです------------------------------- | Name | Opt1 | Value1 | | | Opt2 | Value2 | | | Opt3 | Value3 | | | Opt4 | Value4 | -------------------------------
基本的に私は、全体の変数のためのDataTemplateを持って、その後、オプト/値のコンボは、それが自分のDataTemplateのしています。私は単にできるだけ値のリストを表示しようとしています。
<Label Content="{Binding Path=Identifier.Name, Mode=OneWay}" />
<ListView Grid.Column="1" HorizontalAlignment="Stretch"
ItemsSource="{Binding Path=Values, Mode=OneWay}" />
の値に対する結合は、現在2つの<Grid>
年代でのみ<Label>
で、ListViewコントロールは、私は、私が本当にしたいすべてが使用してデータバインドすることができるようにする場合は、そのような境界線のスタイリング、選択、およびなど、見てはいけない機能をたくさん持っていますリスト。
私はのStackPanelに項目をデータバインドしようとしましたが、それはXAMLで動作させることができませんでした。私は別の解決策は、私がやっている何をすべきか、とリストビューのための<Style>
を書き換えることであると仮定します。これを行うには正しい方法上の任意の提案?
解決
これは確かにあなたがで行うことができます何かのように聞こえますリストボックスに、またはあなたがそれらを選択可能にしたくない場合のItemsControl。また、 IsSharedSizeScope でも、フォーマットされ、私たちの列を維持するためにプロパティを添付。また、リストボックスのリンクの下部に継承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>
所属していません StackOverflow