2014-11-18 2 views
0

Может ли кто-нибудь помочь мне по этой проблеме
У меня есть приложение wpf с одним окном и одним элементом управления пользователя.Вызов метода из пользовательского элемента управления для маршрутизируемого события в wpf?

управления пользователя: InventoryMenu
Окно: MenuView

Я создал перенаправленное событие на моем InventoryMenu:

NewImage.AddHandler(Image.MouseDownEvent, new RoutedEventHandler(First_Click1)); 

Теперь на моем методе First_Click1, я звоню по методу из MenuView

private void First_Click(object sender, RoutedEventArgs e) 
{ 
    MenuView menu = new MenuView(); 
    menu.showInventoryView(); 
} 

Теперь из меню:

public void showInventoryView() 
{ 
    Inventory inventoryView = new Inventory(); 
    ChildView.Children.Clear(); 
    ChildView.Children.Add(inventoryView); 
    MessageBox.Show("I was called"); 
} 

Проблема в том, что метод был вызван, но представление не было показано?

Спасибо!

+0

Какое ваше детское представление здесь? –

+0

Прежде всего, покажите окно MenuView, вызывая MenuView.Show() .. затем попробуйте. –

ответ

0

Вы можете установить invertoryView.Visible = true; или inventoryView.SetVisible(true);

0

Там нет детей Недвижимость окна. Окно ContentControl имеет только одного ребенка. Вы можете сделать это в xaml очень просто. Вот несколько примеров, как можно это сделать:

<Window x:Class="TestNamespace.MenuView" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:TestNamespace" 
    Title="MenuView" Height="300" Width="300"> 
    <local:InventoryMenu/> 
</Window> 

Где локальный ваш локальное пространство имен, где находится ваш UserControl. И теперь дочерний элемент Window - ваш UserControl. Если вам нужно больше одного UserControl в окне, вы можете сказать, что Child of Window представляет собой панель типа Grid или StackPanel и помещает ваши UserControls в панели.

Смежные вопросы