从WPF页面继承

时间:2011-08-09 09:49:27

标签: .net wpf inheritance

我有一个包含可覆盖属性“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

1 个答案:

答案 0 :(得分:1)

当我在WPF中构建向导时,我正在做与此类似的事情。我这样做的方法是创建一个类(让我们说“MyPage”),它只是扩展页面并向其添加FileName属性。然后,当您想要使用MyPage时,请在XAML中声明它。这样你的XAML看起来或多或少会像:

<mynamespace:MyPage 
    xmlns:mynamespace="clr-namespace:PathOfNamespace"
    FileName="MyFileName.file">
    <some more XAML>
</mynamespace:MyPage>