2016-03-23 15 views
1

İki TabItems içeren bir TabControl içeren bir pencerem var ("A" ve "B" olarak adlandırın). Sekme A'nın birkaç ContextMenus'u vardır: Her MenuItem'in TabItem'i Tab B'ye değiştirmesini isterim. İdeal olarak, bir MenuItem seçildiğinde sekmeyi değiştirecek bir MenuItem şablonu yazardım. Mümkün mü?WPF paylaşıldı EventTrigger

DÜZENLEME: Ben istiyorum sekme denetimi ve sekme öğesini adında

<Window.Resources> 
    <ResourceDictionary> 
     <Style TargetType="MenuItem" x:Key="ContextMenuItemBase"> 
     ... (various stylings) 
     <EventSetter Event="Click" Handler="MenuItem_Clicked"/> 
     </Style> 
    </ResourceDictionary> 
</Window.Resources> 

: Ben kullanarak sona erdi çözüm tıklama etkinliğini ve işleyicisi tanımlayan bir taban stilinden kaynaklanan contextmenus içinde menuitems dayanır anahtar için: MainWindow.xaml.cs içinde Sonra

<TabControl x:Name="tcTabs"> 
... 
    <TabItem Header="Results" x:Name="tiResultsTab"> 

arka planda kodlama dosya:

private void MenuItem_Clicked(object sender, RoutedEventArgs e) 
{ 
    tcTabs.SelectedItem = tiResultsTab; 
} 
+0

Ne istediğinizi belli değil ... Tab A contect menüsünün sekmeyi B sekmesini görüntülemek için değiştirme ihtiyacı vardır. Sitation'unuzu yeniden yazabilir/yazabilir misiniz? – OmegaMan

+0

Evet ... Sekme A bağlam menüleri, menü öğelerinden birine basıldığında Sekme B'yi görüntülemek için sekmeyi değiştirmelidir. – riqitang

+0

Sizi etkinliğe abone olmaktan ve B Tab B'ye geçmektan ne engelliyorsunuz? – OmegaMan

cevap

0

Menü seçim etkinliğine abone olun. İşlemi işleyen yöntem içinde, numaralı numaralı menüyü, Sender tanımlayan yöntem bağımsız değişkenleri aracılığıyla çağırır (muhtemelen Tag özelliğini diğer sekmenin başvurusu (?) Ile işaretleyin). Ardından uygun hedef Sekmeye geçin.

+0

Yani saf XAML çözümü yok mu? Her zaman bir kod arkasına mı ihtiyacım var? – riqitang

+0

@riqitang, çalışmamız için küçük bir örnek uygulama sağlar. Uygun bir cevabı engelleyebilecek/engelleyemeyen çok fazla değişken AFAIK vardır. Hiçbir şey sadece OP'in “Sistemim gibi değil” dediği bir çözüm üzerinde çalışmaktan daha kötü değildir. :-) – OmegaMan

+0

Tavsiyeyi takdir ediyorum, minimum kod kullanarak çalıştım, OP'yi "çözüm" ile düzenleyeceğim ve bu cevabı kabul edildi olarak işaretleyeceğim (çözümün temelini aştığı için) – riqitang