1

ListBox コントロールの ItemTemplate としてそのインスタンスを使用できるように、プログラムでクラス (ViewGrid と呼びます) を作成しました。もちろん、それはリストボックス項目の私のデータ テンプレートです....

また、私の ViewGrid クラスでは、IsChecked という依存関係プロパティを取得しました。これを ListBoxItem のIsSelectedプロパティと同期させたいと考えています。SL では、WPF のようにバインドに対する relativesource-findancestor-ancestortype のサポートがないことに気付きましたが、それでも、自分の IsChecked プロパティを、ListBox コントロールの内部生成された ListBoxItem の IsSelected プロパティと同期させる方法を見つける必要があります。手伝ってくれますか?

4

2 に答える 2

0

次に示すのは、XAML で定義された ListBox で、各 LitBoxItem の IsSelected プロパティを使用して、選択されたときにボタンを表示または非表示にします。コードで作成する ListBoxItems に対して、その Binding アプローチを複製する必要があるだけです。または、適切な ListBoxItem XAML を使用して UserControl を作成し、それらの UserControl のインスタンスを ListBox に挿入します。

<ListBox>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid Width="200" Height="120">
                <StackPanel Margin="5">
                    <TextBlock Text="{Binding Name, Mode=OneWay}" />
                    <StackPanel Visibility="{Binding IsSelected, Mode=OneWay, Converter={StaticResource BoolToVisible}}">
                        <Button Content="Show Details" Click="OnDetailsClick" Tag="{Binding}" />
                    </StackPanel>
                </StackPanel>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

幸運を、

ジム・マッカーディ

Face To Face ソフトウェアYinYangMoney

于 2010-02-03T17:33:38.233 に答える