Einstellen des Befehl Bindungen über XAML auf Pagefunction Formen
-
21-08-2019 - |
Frage
Wenn Sie ein WPF-Fenster oder eine WPF-Seite erstellen, können Sie in der XAML-Befehle an Funktionen binden.
<Page x:Class="WpfPageApplication.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:WpfPageApplication="clr-namespace:WpfPageApplication"
Title="Page1" Background="LightGray"
>
<Page.CommandBindings>
<CommandBinding
Command="WpfPageApplication:PizzaCommands.ConfigurePizza"
Executed="OnConfigurePizza" />
</Page.CommandBindings>
Es ist eine andere Art von WPF Form: a PageFunction
. Aber es funktioniert nicht zulassen, geben Sie ein:
<PageFunction.CommandBindings>
Ich kann zwei mögliche Erklärungen erraten:
- Da
PageFunction
ein generisches Objekt ist, müssen Sie irgendwie die allgemeinen Parameter in die XAML eingeben. - Es ist nur eine Inkonsistenz im Rahmen.
Wer weiß, wie ich die CommandBindings
für eine PageFunction
im XAML konfigurieren können? (Ich weiß, dass ich es im Code tun, aber das ist nicht der Punkt).
Lösung
Pagefunction geht letztlich auf Seite, also bin ich ziemlich sicher, dass Sie nur <Page.CommandBindings>
verwenden können Ihre Befehlsbindungen zu definieren. Natürlich können Sie <Page.Resources>
in einem Pagefunction verwenden, um seine Ressourcen zu definieren.
Warum können Sie nicht <PageFunction.CommandBindings>
verwenden? Ich weiß nicht, aber ich denke, Sie wahrscheinlich recht, wenn Sie sagen, dass es mit der Tatsache zu tun, dass Pagefunction ein generischer Typ ist. Sie würden einen Weg in XAML müssen sagen, was die zugrunde liegenden Typ ist. Ich denke, das ist möglich, in der .NET 4.0-Version von XAML, aber nicht in der aktuellen Version.