2009-06-30 4 views
2

Wenn Sie ein WPF-Fenster oder eine WPF-Seite erstellen, können Sie Befehle an Funktionen in XAML binden.Festlegen von Befehlsbindungen über XAML auf PageFunction-Formularen

<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 nicht lassen Sie Folgendes eingeben:

<PageFunction.CommandBindings> 

ich 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ß, ich kann es im Code tun, aber das ist nicht der Punkt).

Antwort

2

PageFunction stammt letztendlich von Page, ich bin also ziemlich sicher, dass Sie <Page.CommandBindings> verwenden können, um Ihre Befehlsbindungen zu definieren. Sicher können Sie <Page.Resources> in einer PageFunction verwenden, um seine Ressourcen zu definieren.

Warum können Sie nicht <PageFunction.CommandBindings> verwenden? Ich weiß es nicht, aber ich denke, Sie haben wahrscheinlich Recht, wenn Sie sagen, dass dies mit der Tatsache zusammenhängt, dass PageFunction ein generischer Typ ist. Sie müssten in XAML einen Weg finden, um zu sagen, was der zugrunde liegende Typ ist. Ich denke, das ist in der .NET 4.0-Version von XAML möglich, aber nicht in der aktuellen Version.

+1

Ich habe versucht. Es klappt. –

Verwandte Themen