Verbindlich an beigefügtes Eigentum

Ich versuche, die ContentTemplate von Button an die angehängte Eigenschaft zu binden. Ich habe alle Antworten auf Fragen gelesen, die der Frage "Bindung an beigefügte Objekte" ähneln, aber ich hatte kein Glück, das Problem zu lösen.

Bitte beachten Sie, dass das hier gezeigte Beispiel eine heruntergekommene Version meines Problems ist, um eine Überlastung des Problems mit Geschäftscode zu vermeiden.

Ich habe also eine statische Klasse mit angehängter Eigenschaft:

using System.Windows;

namespace AttachedPropertyTest
{
  public static class Extender
  {
    public static readonly DependencyProperty AttachedTextProperty = 
      DependencyProperty.RegisterAttached(
        "AttachedText",
        typeof(string),
        typeof(DependencyObject),
        new PropertyMetadata(string.Empty));

    public static void SetAttachedText(DependencyObject obj, string value)
    {
      obj.SetValue(AttachedTextProperty, value);
    }

    public static string GetAttachedText(DependencyObject obj)
    {
      return (string)obj.GetValue(AttachedTextProperty);
    }

  }
}

und ein Fenster:

<Window x:Class="AttachedPropertyTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:AttachedPropertyTest"
        Title="MainWindow" Height="350" Width="525">
  <Grid>
    <Button local:Extender.AttachedText="Attached">
      <TextBlock 
        Text="{Binding 
          RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button},
          Path=(local:Extender.AttachedText)}"/>
    </Button>
  </Grid>
</Window>

Das wars so ziemlich. Ich würde nicht erwarten, "Attached" in der Mitte des Knopfes zu sehen. Stattdessen stürzt es ab mit:Der Eigenschaftspfad ist ungültig. 'Extender' hat keine öffentliche Eigenschaft mit dem Namen 'AttachedText'.

Ich habe Haltepunkte für SetAttachedText und GetAttachedText und SetAttachedText festgelegtist ausgeführt, so dass das Anhängen an die Schaltfläche funktioniert. GetAttachedText wird jedoch nie ausgeführt, sodass beim Auflösen keine Eigenschaft gefunden wird.

Mein Problem ist tatsächlich komplizierter (ich versuche, das Binden von innerhalb von Style in App.xaml), aber beginnen wir mit dem einfachen.

Habe ich etwas verpasst? Vielen Dank,

Antworten auf die Frage(1)

Ihre Antwort auf die Frage