I'm creating a menu at runtime using an ObservableCollection. I load up this collection when the application first loads something like this:
So, I have an image defined to be used in certain menu items. In the XAML - I have a HierarchicalDataTemplate set up this way:
My question is - how do I add an element to the HierarchicalDataTemplate that will be able to access the image that is part of the binding to the control? Or - is there another way to accomplish this?
private void LoadMenu() |
{ |
BitmapImage bi = null; |
/* Load menu items and the associated UserControls */ |
menuDataItems = new ObservableCollection<MenuDataItem>(); |
MenuDataItem validationLevel = new MenuDataItem() {Name = "Validation", NextPage = null}; |
MenuDataItem rulesLevel = new MenuDataItem() { Name = "Rules", NextPage = null }; |
MenuDataItem helpLevel = new MenuDataItem() { Name = "Help", NextPage = null }; |
bi = new BitmapImage(new Uri("../Common/images/task.png", UriKind.Relative)); |
MenuDataItem validItem = new MenuDataItem() |
{ |
Name = "Validate", NextPage = typeof(ValidationView), |
Icon = new Image() |
{ |
Height = 16, |
Width = 16, |
Source = bi |
} |
}; |
validationLevel.Add(validItem); |
MenuDataItem ruleItem = new MenuDataItem() { Name = "View Rules", NextPage = typeof(RulesView) }; |
rulesLevel.Add(ruleItem); |
ruleItem = new MenuDataItem() { Name = "New Rule", NextPage = null }; |
rulesLevel.Add(ruleItem); |
MenuDataItem helpItem = new MenuDataItem() { Name = "About", NextPage = null }; |
helpLevel.Add(helpItem); |
menuDataItems.Add(validationLevel); |
menuDataItems.Add(rulesLevel); |
menuDataItems.Add(helpLevel); |
mnuMain.ItemsSource = menuDataItems; |
} |
<telerik:RadMenu Grid.Row="1" x:Name="mnuMain" HorizontalAlignment="Stretch" VerticalAlignment="Top"> |
<telerik:RadMenu.ItemTemplate> |
<core:HierarchicalDataTemplate ItemsSource="{Binding}"> |
<TextBlock Text="{Binding Name}"/> |
</core:HierarchicalDataTemplate> |
</telerik:RadMenu.ItemTemplate> |
</telerik:RadMenu> |