2014-11-18 3 views
0

이 문제에 대해 아무도 도와 줄 수 있습니까
하나의 창과 하나의 사용자 컨트롤이있는 wpf 응용 프로그램이 있습니다.사용자 정의 컨트롤에서 wpf의 라우트 된 이벤트로 메서드 호출?

사용자 제어 : InventoryMenu
창 : 내 First_Click1 방법에 이제

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

, 나는 MenuView

에서하는 방법에 호출 오전 : MenuView

나는 나의 InventoryMenu에 라우트 된 이벤트를 생성

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

Now MenuView에서 :

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

문제는 메서드가 호출되었지만 뷰가 표시되지 않았습니까?

감사합니다.

+0

여기 ChildView는 무엇입니까? –

+0

먼저 MenuView.Show()를 호출하여 MenuView 창을 표시 한 다음 해보십시오. –

답변

0

당신은 invertoryView.Visible = true; 또는 inventoryView.SetVisible(true);

0

이 창에 대한 어린이 재산권 없다 설정할 수 있습니다. Window는 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> 

여기서 local은 UserControl이있는 로컬 네임 스페이스입니다. 이제 Window의 자식이 UserControl입니다. 하나 이상의 UserControl이 Window에 필요하면 Window of Child가 Grid 또는 StackPanel과 같은 패널이고 Panel에 UserControl을 배치한다고 말할 수 있습니다.

관련 문제