【发布时间】:2015-03-29 05:33:26
【问题描述】:
我已经厌倦了编写代码行:
SomeUIElement ui = new SomeUIElement();
Grid.Children.Clear();
Grid.Children.Add(ui);
所以我决定编写一个方法来确定元素的类型,然后清除子元素并将其添加到网格中。
类似这样的:
private void GridChildren(UIElement uc)
{
var element = uc.GetType();
Grid.Children.Clear();
Grid.Children.Add(element);
}
然后我可以这样称呼:
GridChilren(UserControl);
但是我不断收到错误:
Argument 1: cannot convert from 'System.Type' to 'System.Windows.UIElement'
关于如何确定传递给我的方法的usercontrol 的类型有什么想法吗?
编辑:
我可以通过先创建实例然后清除并添加到网格来调用它。不过这不是我的问题。
是的,这样会更方便,但出于这个问题的目的,假设我只是想了解如何创建一个类型的实例而不自己写出来。
【问题讨论】:
-
你需要传递一个实例(
ui)而不是类型 -
该死,我以为可能是这样。我只是想真的很懒,只通过类型!男人……
-
这有什么帮助?您总是可以使用
Activator.CreateInstance来制作一个新的,但这并不能为您带来太多收益... -
你为什么使用
GetType?您没有找到相同类型的控件,您只是在清除控件并将其添加到Grid控件。 -
I'm fed up of writing the lines of code- 然后通过使用 XAML 和 DataBinding 来学习正确使用 WPF。
标签: c# wpf user-controls gettype