在我的DataContext中,我正在设定BitmapImage,例如
Image = new BitmapImage(uri);
在我的风格我有
<Setter Property="Icon" Value="{Binding Image, Mode=OneWay}" />
但是menuItem将uri显示为字符串,而图标应该在字符串中。
w8ntj3qf1#
没有太多的答案,但我能够使用Loaded事件并在处理程序中设置Icons图像来解决这个问题。
void MenuItem_OnLoaded(object sender, RoutedEventArgs e) { var menuItem = (MenuItem)sender; if (menuItem.DataContext is OptionMenuItemViewModel x) menuItem.Icon = new Image { Source = new BitmapImage(x.ImageUri) }; }
使用以下XMAL
<MenuItem Header="_Database" ItemsSource="{Binding DataBaseMenuItemViewModels}" > <MenuItem.ItemContainerStyle > <Style TargetType="MenuItem" > <EventSetter Event="Loaded" Handler="MenuItem_OnLoaded"/> <Setter Property="Header" Value="{Binding Path=Title}" /> <Setter Property="ToolTip" Value="{Binding Path=ToolTip}" /> <Setter Property="Command" Value="{Binding Path=Command}" /> <Setter Property="CommandParameter" Value="{Binding Path=Message}" /> </Style> </MenuItem.ItemContainerStyle> </MenuItem>
然而,我确实想知道为什么明显的没有工作。
1条答案
按热度按时间w8ntj3qf1#
没有太多的答案,但我能够使用Loaded事件并在处理程序中设置Icons图像来解决这个问题。
使用以下XMAL
然而,我确实想知道为什么明显的没有工作。