BlackCoin's Corner

In diesem Blog dreht es sich zu 90 % um den Themenbereich C# .Net

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???????


Posted: Feb 15 2010, 07:40 von Lars Schmitt | mit 2 comment(s)
Abgelegt unter: ,

Kommentare

Mario sagte:

nachdem du gefragt hast, nach ca 3 sekunden : )

aber dennoch, vielen Dank für den Tipp!

# Februar 15, 2010 9:18

martin sagte:

hi,

an diesem problem bin ich auch schon angestanden. dieses verflixte + !

;)

lg

# Februar 28, 2010 1:46
Kommentar abgeben

(verpflichtend) 

(verpflichtend) 

(optional)

(verpflichtend)