Наследовать со страницы WPF - PullRequest
3 голосов
/ 09 августа 2011

У меня есть страница, которая содержит переопределяемое свойство "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>

Codebehind:

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 ??:

<!-- -->

Код второй страницы:

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 Ответ

1 голос
/ 09 августа 2011

Я делал нечто очень похожее на это, когда создавал мастер в WPF.Для этого я создал класс (скажем, "MyPage"), который просто расширяет страницу и добавляет к ней свойство FileName.Затем, когда вы захотите использовать MyPage, объявите его в XAML как таковом.Таким образом, ваш XAML будет выглядеть примерно так:

<mynamespace:MyPage 
    xmlns:mynamespace="clr-namespace:PathOfNamespace"
    FileName="MyFileName.file">
    <some more XAML>
</mynamespace:MyPage>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...