Je usercontrols qui héritent d'une classe de base qui ressemble à ceci:Est-il possible d'hériter de XAML?
BasePage.cs:
using System.Windows.Controls;
namespace TestPageManager23434
{
public class BasePage : UserControl
{
public string ButtonPreviousText { get; set; }
public string ButtonNextText { get; set; }
protected PageManager pageManager;
public BasePage(PageManager pageManager)
{
this.pageManager = pageManager;
}
}
}
et les contrôles utilisateur qui ressemblent à ceci:
XAML:
<local:BasePage x:Class="TestPageManager23434.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:local="clr-namespace:TestPageManager23434"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel Background="White"
Width="400"
Height="400"
>
<TextBlock Text="this is page1"/>
<TextBlock Text="{Binding Message}"/>
<Button Content="go to page 2" Click="Button_Click"
HorizontalAlignment="Left"
Width="200"
Height="30"
/>
</StackPanel>
</local:BasePage>
code Derrière:
using System.Windows.Controls;
namespace TestPageManager23434
{
public partial class Page1 : BasePage
{
public string Message { get; set; }
public Page1(PageManager pageManager) : base(pageManager)
{
InitializeComponent();
DataContext = this;
}
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
pageManager.SwitchPage("page2");
}
}
}
Mais maintenant dans mes portions XAML de mes différentes UserControls J'ai aussi blocs XAML que je voudrais également Hériter de la classe de base pour que je n'ai pas bloc copié dans chaque fichier XAML:
<StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Left">
<Button
Content="{Binding ButtonPreviousText}"
Width="150"
Margin="5"
Click="ButtonPrevious_Click"/>
<Button
Content="{Binding ButtonNextText}"
Width="150"
Click="ButtonNext_Click" Margin="5"/>
</StackPanel>
Mais depuis ma classe de base n'a pas XAML, je vois deux façons:
- les créer dans le code dans ma classe de base
- créer usercontrols pour les
Ou est-il une autre façon d'avoir cette XAML dans un endroit ou d'une certaine façon d'hériter XAML?
J'ai essayé d'éditer la faute de frappe: Authorizing -> Authoring mais il était à court un edit à commettre par moi. C'est une faute de frappe qui est un peu déroutant au début ... –
@David Perlman, merci, corrigé! –