XAML继承(没有代码隐藏)
如何继承在XAML实现的呢?XAML继承(没有代码隐藏)
这是真的,只是隐藏代码是可以继承的,而不是的.xaml(related question)?是否包含父控件的子控件的命名空间这样做的唯一方法是?
似乎在XAML本身没有一般的“继承”。有questions关于继承UserControl
等,但不是一般继承。
问题:
我有2个XAML文件,File1.xaml
和File2.xaml
,这是非常相似。我可以创建一个SuperFile.xaml
并将其中的大部分代码放入其中吗?
<UserControl ... >
<Grid>
<Grid.RowDefinitions ... />
<DockPanel ... >
<ToolBar ... >
<!-- Some Buttons here:
File1.xaml to contain the Buttons "View" and "Export"
File2.xaml to contain the Buttons "Edit" and "Delete"
-->
</ToolBar>
</DockPanel>
<igDP:XamDataGrid MouseDoubleClick="xamDataGrid1_MouseDoubleClick" ... />
</Grid>
</UserControl>
的唯一事情在File1.xaml
和File2.xaml
不同是:在ToolBar
-
Button
S(参见在代码注释) - 的性质
XamDataGrid
,主要是事件(他们在每种情况下做了什么)。
我该如何做到这一点?我是否需要为子女分别编写代码隐藏文件?
您可以使用ResourceDictionary
把你所有的通用模板和样式在ResourceDictionary
,然后同时拥有您的UserControls
进口是ResourceDictionary
<UserControl.Resources>
<ResourceDictionary Source="BaseStylesAndTemplates.xaml" />
</UserControl.Resources>
谢谢!通过遵循这种方法,我能够在两个子项_XAMLs_中嵌入不同的'Button'集合吗?例如,'File1.xaml'应该在'ToolBar'和'File2.xaml'中具有'Button's''''''''''''''''''''应该'''编辑'和'删除'。请参阅问题中的编辑。 – mauryat 2012-07-05 19:23:38
@ maelstrom3我不明白你为什么不能。您的基本样式将全部从'ResourceDictionary'中取出,而您的各个组件(如按钮)将在您的单独'UserControls'中定义。 – Rachel 2012-07-05 19:39:37
我在_WPF_中没有经验,因此尚未使用_Styles_。所以,我会听取您的意见:)并尝试一下。 – mauryat 2012-07-05 19:42:59
你真正需要继承,或简单地重复使用同一个类并有一个标志,表明你在哪个模式? – 2012-07-05 15:52:37
@JoelLucsy如果只是两个文件的“事件”不同,我可以这么做。如果我使用相同的_xaml_,我将如何能够拥有不同的'Button'?即使在_xaml_中也可以使用**标志**吗? – mauryat 2012-07-05 16:11:37
当然,将按钮的可见性属性绑定到按钮。您必须使用转换器才能从bool更改为Visibility枚举,但有很多这方面的例子。 – 2012-07-05 18:13:19