3

すべてのアイテムにテキストブロックとコンボボックスがあり、リストボックスの幅全体に均等に分割されるように ListBox をセットアップしようとしていますが、それを行うための ColumnDefinition プロパティの魔法の組み合わせが見つからないようです。リストボックス項目の DataTemplate は次のとおりです。とにかく間違っていたので、私はそれをきれいにしました。

        <DataTemplate x:Key="MyDataTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding XPath=text()}"/>
                <ComboBox Grid.Column="1" SelectedIndex="0" ItemsSource="{Binding Source={StaticResource Names}, XPath=Name}"></ComboBox>
            </Grid>
        </DataTemplate>

ウィンドウ上のグリッドを使用して単純なアプリケーションをテストしました。2 つの ColumnDefinitions を指定するだけで、幅の半分が自動的に使用されます。これは便利ですが、listboxitem データ テンプレートで同じことを行うと、動作が異なります。

データテンプレートを変更して機能させるにはどうすればよいですか?

ありがとう!

4

1 に答える 1

7

ListBoxのデフォルトHorizontalContentAlignmentはLeftです。ListBoxItemsが幅全体を占めるようにするには、Stretchに設定する必要があります。

ListBox / ListBoxItemのスタイルとテンプレートに関する詳細は次のとおりです。http://msdn.microsoft.com/en-us/library/cc278062(VS.95).aspx

于 2009-07-23T13:13:39.737 に答える