任何人都可以帮我解决这个问题 我有一个带有一个窗口和一个用户控件的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();
}
现在来自MenuView:
public void showInventoryView()
{
Inventory inventoryView = new Inventory();
ChildView.Children.Clear();
ChildView.Children.Add(inventoryView);
MessageBox.Show("I was called");
}
问题是该方法被调用但视图未显示?
谢谢!
答案 0 :(得分:0)
您可能需要设置invertoryView.Visible = true;
或inventoryView.SetVisible(true);
答案 1 :(得分: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>
where local是放置UserControl的Local Namespace。而现在Window的孩子就是你的UserControl。如果你想在窗口中有多个UserControl,你可以说Window of Child是一个类似Grid或StackPanel的面板,并将你的UserControl放在Panels中。