1

ファンシーな見た目を作ろうとしていListboxます。ListBoxItems は選択後に展開されるはずですが、問題は、ListBox特定のアイテムに関する詳細で満たされた別のアイテムも含まれているはずであり、データをそこに入れる方法がわからないことです。C# コードからのアクセスと XAML でのバインドの両方を試みましたが、まだ解決には至っていません。

<UserControl.Resources>        
    <ResourceDictionary>
    <DataTemplate x:Key="SelectedTemplate">
            <StackPanel Orientation="Vertical">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Path = Order}" Style="{StaticResource SampleListCellItem}" MinWidth="35"/>
                    <TextBlock Text="{Binding Path = FullName}" Style="{StaticResource SampleListCellItem}" Width="340"/>                     
                    <TextBlock Text="{Binding Path = FirstName}" Style="{StaticResource SampleListCellItem}" Width="200" />
                    <TextBlock Text="{Binding Path = BirthDate, StringFormat = d}" Style="{StaticResource SampleListCellItem}" Width="100"/>
                </StackPanel>
                <StackPanel HorizontalAlignment="Right">
                    <ListBox Name="InnerList" Height="200" Width="200"/>
                    <Button Name="Button1" Height="40" Width="100" Content="ButtonText" Visibility="Visible"/>
                </StackPanel>
            </StackPanel>
        </DataTemplate>
        <DataTemplate x:Key="ItemTemplate">
            <StackPanel Orientation="Vertical">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Path = Order}" Style="{StaticResource SampleListCellItem}" MinWidth="35"/>
                    <TextBlock Text="{Binding Path = FullName}" Style="{StaticResource SampleListCellItem}" Width="340"/>
                    <TextBlock Text="{Binding Path = FirstName}" Style="{StaticResource SampleListCellItem}" Width="200" />
                    <TextBlock Text="{Binding Path = BirthDate, StringFormat = d}" Style="{StaticResource SampleListCellItem}" Width="100"/>
                </StackPanel>
            </StackPanel>
        </DataTemplate>

        <Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle">
            <Setter Property="ContentTemplate" Value="{StaticResource ItemTemplate}"/>
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="ContentTemplate" Value="{StaticResource SelectedTemplate}"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ResourceDictionary>
</UserControl.Resources>
4

2 に答える 2

1

探しているのはツリーのようです。TreeViewコントロールは、探しているものに最適だと思います。

于 2010-01-27T14:45:05.987 に答える
0

表示するアイテムには、(Tの)リストまたは通常のリストボックスアイテムソースと互換性のある他のタイプのプロパティがあると想定しています。例として、ListPrという名前を付けます。

データテンプレートで、listBoxコントロールを追加し、ItemsSourceを{Binding Path=ListPr}に設定します。それはそのように機能するはずです。その新しいリストボックスで、別のデータテンプレートなどを定義できるようになります。

ただし、別の投稿で言及されているように、この場合はツリービューが必要になる可能性があります。

お役に立てば幸いです。

于 2010-01-27T14:49:36.070 に答える