2つのusercontrol、listviewを持つusercontrol、およびいくつかの他のコントロールを持つusercontrolを含むウィンドウがあります。ListView列の数を動的に設定する方法
このような何か:
+-------------------------------------------------+
| header stuff |
+---------------------------+---------------------+
| usercontrol with listview | another usercontrol |
+-------------------------------------------------+
| footer stuff |
+-------------------------------------------------+
問題:画面の周りに2〜3列のを見て、その唯一の可能な低解像度で、あなたはthrid列を表示するためにスクロールする必要があります。幅に応じて1,2列または3列を表示するかどうかを動的に設定することで、水平スクロールを避けたい。もう1つの問題は、名前が と非常に長くなる可能性があるため、リストビュー内の項目の幅はすべて最長の名前と同じ幅になります。リストビューのための
コード:
<ListView Name="lstContacts"
ItemsSource="{Binding Path=Contacts}"
IsSynchronizedWithCurrentItem="True"
ItemContainerStyle="{StaticResource RoundedItem}"
SelectionMode="Single"
HorizontalContentAlignment="Center"
VerticalAlignment="Top"
HorizontalAlignment="Stretch" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="3">
<TextBlock FontWeight="Bold" FontSize="20" Text="{Binding Path=Identifier}" HorizontalAlignment="Center" />
<TextBlock FontSize="16" Text="{Binding Path=Name}" HorizontalAlignment="Center" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="3" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
これを整理する方法上の任意のアイデア?
おそらくリストビューは悪い選択ですか?
ありがとうございました。 WrapPanelを仮想化するネイティブがないことを
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
注、これはアイテムの大規模なコレクションのためにうまく機能しません。