0

WPFの世界では初めてであり、動的な列ビューを実装する必要があります。

アイデアを概念的に視覚化することはできますが、これを実装に変えることはできません。

StackPanel->ListView->Textboxes。

全体的な考え方は、選択したエンティティに基づいて、選択したエンティティの列としてプロファイルを表示することです。プロファイルは変更される可能性があるため、プロファイルを動的な列として表示したいと思います。プロファイルには54個のアイテムがあり、垂直方向にテキストボックスとして表すことができます。

したがって、プロファイルアイテム(54アイテム)を表す監視可能なコレクションがある場合、ユーザーコントロールにバインドされ、ユーザーコントロールがリストビューに垂直に読み込まれます。

したがって、追加された各プロファイルはスタックパネルに水平方向に追加されるため、すべてのプロファイルを動的列として取得できます。

xamlを介してこれを実装する方法、およびモデルオブジェクトをどのように表示するかについてのアイデアやポインタはありますか?

私のアイデアが適切に伝わったことを願っています:)

**必要なものの非常に簡単な手のスケッチを追加します。

列col1..col2.....は、理想的には、列内の長方形のボックスで示されるテキストボックスに表示されるデータを持つコレクションです。

全体の各列は変えることができます。

したがって、サービスから取得するデータは、理想的にはコレクションのコレクションです。

したがって、最初のコレクションには、Col1..Col2..Col3...アイテムが含まれています。

最初はこれはグリッドに非常によく似ていると思いましたが、データモデルはグリッド表示スタイルに適合していません。

これらの各Col1..col2..col3は、別のコレクションとして最初のコレクション内にあります。ここに画像の説明を入力してください

4

1 に答える 1

0

SOのおかげで、上記の必要に応じてデータのレイアウトと表示を解決することができました。さまざまな回答を組み合わせて、これを実現しました。

したがって、以下のXAMLは、任意の数のリストアイテムを水平方向に作成します。

<Grid x:Name="LayoutRoot" Background="White">
    <StackPanel Height="301"  HorizontalAlignment="Left" Margin="37,42,0,0" Name="stackPanel1" 
                VerticalAlignment="Top" Width="795">
        <StackPanel.Background>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="Black" Offset="0" />
                <GradientStop Color="White" Offset="1" />
                <GradientStop Color="Silver" Offset="0.006" />
            </LinearGradientBrush>
        </StackPanel.Background>

        <ItemsControl x:Name="tStack" Grid.Column="0" ItemsSource="{Binding Profiles}" >
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Grid HorizontalAlignment="Left">
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                        <Button Grid.Row="0" Content="{Binding Name}"/>
                        <ListBox Grid.Row="1" Height="209" Name="listBox1" Width="98" HorizontalAlignment="Left"
                            ItemsSource="{Binding Path=Profile, Mode=TwoWay}"/>
                    </Grid>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </StackPanel>
</Grid>
于 2012-08-13T15:39:39.227 に答える