0

ListView.ItemTemplate のコード ビハインドからローカル変数にバインドする必要があります。私はデータコンテキストを使用してみました:

            <ListView Name="listView" ItemsSource="{Binding}" DataContext="{Binding}" VerticalAlignment="Stretch" MaxHeight="300" Background="White" Foreground="Black" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" BorderBrush="#FFCDCDCD" BorderThickness="1" ScrollViewer.VerticalScrollBarVisibility="Auto" IncrementalLoadingTrigger="None" SelectionChanged="listView_SelectionChanged" >
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" MaxHeight="25" >
                            <TextBlock Grid.Row="0" Grid.Column="0" Text="{Binding Text}" Width="{Binding Width}" />
                            <Image Grid.Row="0" Grid.Column="1" Source="{Binding Image}" Stretch="None" Width="40" HorizontalAlignment="Left" Margin="4,0,0,0" />
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

"Width="{Binding Width}"" の代わりに、datacontext のプロパティが必要です。残りのデータは itemsSource に接続されています。データコンテキストからプロパティを使用するようにxamlに「伝える」方法は? (現在、「プロパティが見つかりません」というエラーが返されます)。itemsource を変更して幅を追加したくありません。これは、すべての要素で一定であるためです (明らかです;))。

前もって感謝します :)

4

1 に答える 1

3

それDataContextアイテムであるを使用しItemTemplateます。ツリーを上って別の を見つけることができますDataContext。この場合は、次のものが必要ですListView's

{Binding DataContext.Width,
         RelativeSource={RelativeSource AncestorType=ListView}}
于 2012-08-14T23:06:13.953 に答える