Hello everyone!
I'm using RadOutlookBar as a region in my Prism application. RadOutlookBarItems are being dynamically loaded to that region as its views. All RadOutlookBarItems are the same:
<telerikNavigation:RadOutlookBarItem x:Name="outlookBarItem">
<telerikNavigation:RadTreeView Name="NavigaionTree" SelectionMode="Single" ItemTemplate="{StaticResource Section}"
ItemsSource="{Binding Path=AppNavigationItems}"
SelectedItem="{Binding Mode=TwoWay, Path=CurrentAppNavigationItem}"
MouseDoubleClick="NavigaionItemDoubleClick"
MouseDown="NavigaionItemMouseDown"
IsSingleExpandPath="True"
IsExpandOnSingleClickEnabled="True"
IsExpandOnDblClickEnabled="False"
IsLineEnabled="True">
<telerikNavigation:RadContextMenu.ContextMenu>
<telerikNavigation:RadContextMenu Name="contextMenu">
<telerikNavigation:RadMenuItem Header="Развернуть" Name="ExpandButton" Click="ExpandButtonClick"/>
<telerikNavigation:RadMenuItem Header="Свернуть" Name="ReduceButton" Click="ReduceButtonClick"/>
<telerikNavigation:RadMenuItem Header="Открыть" Name="NewTabButton" Click="NewTabButtonClick"/>
<telerikNavigation:RadMenuItem Header="Открыть в фоновой вкладке" Name="ShadowTabButton" Click="ShadowTabButtonClick"/>
</telerikNavigation:RadContextMenu>
</telerikNavigation:RadContextMenu.ContextMenu>
<telerikNavigation:RadTreeView.Background>
<SolidColorBrush Color="White"/>
</telerikNavigation:RadTreeView.Background>
</telerikNavigation:RadTreeView>
</telerikNavigation:RadOutlookBarItem>
During runtime I want to manipulte with RadMenuItms in every view:
private void NavigaionItemMouseDown(object sender, MouseButtonEventArgs e)
{
if (sender is RadTreeViewItem)
{
var treeViewitem = sender as RadTreeViewItem;
treeViewitem.IsSelected = true;
e.Handled = true;
if (treeViewitem.HasItems)
{
this.NewTabButton.Visibility = Visibility.Collapsed;
this.ShadowTabButton.Visibility = Visibility.Collapsed;
this.ExpandButton.Visibility = Visibility.Visible;
this.ReduceButton.Visibility = Visibility.Visible;
this.ExpandButton.IsEnabled = !treeViewitem.IsExpanded;
this.ReduceButton.IsEnabled = treeViewitem.IsExpanded;
}
else
{
this.ExpandButton.Visibility = Visibility.Collapsed;
this.ReduceButton.Visibility = Visibility.Collapsed;
this.NewTabButton.Visibility = Visibility.Visible;
this.ShadowTabButton.Visibility = Visibility.Visible;
}
}
}public AppNavigationView()
{
InitializeComponent();
EventManager.RegisterClassHandler(typeof(RadTreeViewItem),
MouseRightButtonDownEvent, new MouseButtonEventHandler(NavigaionItemMouseDown), false);
}
But unfortunately my logic works well only in the first RadOutlookBarItem. It also works for every other
RadOutlookBarItem, but the result PopUp still consists of 4 items.
Please help me solve this "miracle".
Thank you in advance.