我想将数组添加到ListBox中,我希望每个ListBoxItem都有自己的文本和Icon(PackIcon)。我形成数组并将其绑定到ListBox。
C#
"calculate"
XAML
MenuItems = new[]
{
new MenuItem
{
Id = 0,
Caption = "Item 1",
Icon = "Pencil",
Poeition = 1
},
new MenuItem
{
Id = 1,
Caption = "Item 2",
Icon = "Ticket",
Poeition = 2
},
文字出现,但图标不显示。如何动态显示图标(PackIcon Materialdesign)。当我绑定图标名称舔一个字符串时,它不起作用。
我试着这样做
<ListBox
x:Name="lbMenuPanel"
Foreground="White"
ItemsSource="{Binding MenuItems}"
PreviewMouseLeftButtonUp="lbMenuPanel_PreviewMouseLeftButtonUp"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Height="60" Orientation="Horizontal">
<md:PackIcon VerticalAlignment="Center" Kind="{Binding Icon}" />
<TextBlock Style="{StaticResource MenuTextBlock}" Text="{Binding Caption}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
但是没有用。
答案 0 :(得分:1)
这是我测试过的一个简单修复。而不是将实际的PackIcons存储在MenuItem中,而是存储字符串版本。
MenuItem
{
Id = 1,
Caption = "Мои роли",
Icon = PackIconKind.Pencil.ToString(),
Poeition = 2
}
&#39;图标&#39;变量是我的例子中的一个字符串。
上面的xaml代码应该有效。
我试过这个并且它有效。
尝试设置PackIcon的大小也是值得的,尽管这不应该是问题。