我有一个包含可覆盖属性“FileName”的页面。 我想创建整个页面并从它们继承以具有相同的页面但具有不同的文件名。
这可能吗?
主页XAML:
<Page x:Class="Batcher_File"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:my="clr-namespace:TB_InstallSystem"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="600"
Title="Batcher">
</Page>
代码隐藏:
Class Batcher_File
Private _fiBatch As New IO.FileInfo(TB.SystemMain.AppPath & "myfile.xml")
Public Overridable Property fiBatch As IO.FileInfo
Get
Return _fiBatch
End Get
Set(value As IO.FileInfo)
_fiBatch = value
End Set
End Property
End Class
第二页XAML ??:
<!-- -->
第二页Codebehind:
Public Class Batc_After
Inherits Batcher_Filer
Private _fiBatch As New IO.FileInfo(TB.SystemMain.AppPath & "batch_after.xml")
Public Overrides Property fiBatch As IO.FileInfo
Get
Return _fiBatch
End Get
Set(value As IO.FileInfo)
_fiBatch = value
End Set
End Property
End Class
答案 0 :(得分:1)
当我在WPF中构建向导时,我正在做与此类似的事情。我这样做的方法是创建一个类(让我们说“MyPage
”),它只是扩展页面并向其添加FileName
属性。然后,当您想要使用MyPage
时,请在XAML中声明它。这样你的XAML看起来或多或少会像:
<mynamespace:MyPage
xmlns:mynamespace="clr-namespace:PathOfNamespace"
FileName="MyFileName.file">
<some more XAML>
</mynamespace:MyPage>