この質問は、WPFのXAMLでのレイアウトについてです。私はそれに続く特定のレイアウトがあります。 ListBoxItemsカウントは、表示するイメージの数を示します。画像は、プロパティDataとTextを持つコレクションリストから取得されます。各画像にはテキストがあり、テキストにバインドされています。データは、画像ソース/パス値を保持する。これは動的値ですが、この例のリストです。Template WPFを使用してListBoxItemをカスタマイズする
A | B C | D E | F G | H I | J Apple | Boy Cat | Dog Egg | Fan Goat | Hen Ice | Jelly
ここのAppleとBoyなどの名前は画像です。私の主な問題は、このレイアウトをどうやって管理できるかということです。私はAとBのような2つの画像でグループ分けする必要がありますが、| (セパレータブロック画像)。 行ごとに表示する画像の最大ペアは5です。次の画像セットは次の行に配置されます。
私の現在のテストコード:
` public class ViewModel { public string Text { get; set; } public string FilePath { get; set; } } /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); List listItems = new List(); listItems.Add(new ViewModel() { Text = "A", Data = "ListBoxTest;component/Images/Apple.png" }); listItems.Add(new ViewModel() { Text = "B", Data = "ListBoxTest;component/Images/Boy.png" }); listItems.Add(new ViewModel() { Text = "C", Data = "ListBoxTest;component/Images/Cat.png" }); listItems.Add(new ViewModel() { Text = "D", Data = "ListBoxTest;component/Images/Dog.png" }); listItems.Add(new ViewModel() { Text = "E", Data = "ListBoxTest;component/Images/Egg.png" }); listItems.Add(new ViewModel() { Text = "F", Data = "ListBoxTest;component/Images/Fan.png" }); listItems.Add(new ViewModel() { Text = "G", Data = "ListBoxTest;component/Images/Goat.png" }); listItems.Add(new ViewModel() { Text = "H", Data = "ListBoxTest;component/Images/Hen.png" }); listItems.Add(new ViewModel() { Text = "I", Data = "ListBoxTest;component/Images/Ice.png" }); listItems.Add(new ViewModel() { Text = "J", Data = "ListBoxTest;component/Images/Jelly.png" }); myListBox.ItemsSource = listItems; } }
<Style x:Key="listBoxItemStyle"
TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<StackPanel>
<Grid>
<TextBlock Text="{Binding Text}" Margin="30" />
<Image Name="pumpImage"
Source="{Binding Data}"
Width="100"
Height="100" />
</Grid>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
これを達成するためにどのようにお考えやアイデアを共有してください。ありがとうございました。
ありがとうございます@ M.E。これは素晴らしいです。私はあなたが持っているこのペアのアプローチを考えることができませんでした。あなたのアプローチは理にかなっています。今私はそれについてより多くのアイデアを持っており、私はそれで作業するスタイルで心配しないでください。これは最高です。 – user1670340
素晴らしい!お役に立てて嬉しいです。これがうまくいく場合、[この回答を受け入れられた回答としてマークする](http://meta.stackexchange.com/a/5235)をご利用ください。ありがとう。 –