Zugriff aus dem XAML-Code auf Properties in einer Nested Classes
Problem: Mal angenommen, während einer Entwicklungsphase will man per XAML-Code auf verschiedene Properties aus einer wie unten zu sehenden Nested Class zugreifen.
public class OuterClass{
public class InnerClass{
static InnerClass(){
Foo = “Testausdruck”;
}
public static string Foo{ get; set; }
}
} Wer schon einmal versucht per Dot Notation auf dieses Property zuzugreifen, kennt die Resultierende Fehlermeldung ‘Der Typ "OuterClass.InnerClass"wurde nicht gefunden. Beachten Sie, dass bei Typnamen die Groß- und Kleinschreibung berücksichtigt wird.’
<Window x:Class="WpfApplication16.Window1"
xmlns="<a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"">http://schemas.microsoft.com/winfx/2006/xaml/presentation"</a
xmlns:x="<a href=">http://schemas.microsoft.com/winfx/2006/xaml"">http://schemas.microsoft.com/winfx/2006/xaml"</a
xmlns:Foo="clr-namespace:WpfApplication16"
Title="Window1" Height="300" Width="300">
<Grid>
<Button Content="{Binding Source={x:Static Foo:OuterClass.InnerClass.Foo}}"/>
</Grid>
</Window>
Hmm Der Code sieht doch eigentlich richtig aus …
Doch natürlich würde ich nicht darüber schreiben, wenn es nicht auch dafür eine Lösung geben würde
<Window x:Class="WpfApplication16.Window1"
xmlns="<a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation"">http://schemas.microsoft.com/winfx/2006/xaml/presentation"</a
xmlns:x="<a href=">http://schemas.microsoft.com/winfx/2006/xaml"">http://schemas.microsoft.com/winfx/2006/xaml"</a
xmlns:Foo="clr-namespace:WpfApplication16"
Title="Window1" Height="300" Width="300">
<Grid>
<Button Content="{Binding Source={x:Static Foo:OuterClass+InnerClass.Foo}}"/>
</Grid>
</Window>
Wer findet den Unterschied?
Nein keine Sorge, wir spielen jetzt nicht suche den Unterschied, Der unterschied Liegt im ‘+’ {Binding Source={x:Static Foo:OuterClass -------->+<--------InnerClass.Foo}}, aber seit ehrlich, hättet ihr den Unterschied gefunden???????