Wie verwenden Sie die Reflektion, um auf Eigenschaften von Window
Objekten zuzugreifen?C# mit Reflektion für den Zugriff auf Fenstereigenschaften
Hier ist ein minimales Beispiel:
.xaml
Datei:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow">
<TextBox x:Name="Textbox" Text=""/>
</Window>
Code hinter Datei:
public class A
{
public int Prop { get; set; }
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Test.Text = "blah";
PropertyInfo p1 = this.GetType().GetProperty("Textbox");
PropertyInfo p2 = new A().GetType().GetProperty("Prop");
}
}
p1
ist null
(p2
nicht wie erwartet). Wieso ist es so? Ist die Window
Art eine spezielle object
? Oder liegt es daran, dass der Typ Textbox
als internal
Feld generiert wird?
#line 5 "..\..\MainWindow.xaml"
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
internal System.Windows.Controls.TextBox Textbox;
'TextBox' ist keine Eigenschaft von' Hauptfenster'. Es ist ein Element im Layout hinzugefügt und das war's. Übrigens, was versuchst du zu erreichen? –
warum versuchen Sie, "" Textbox "' aber in generierten 'Test;'? – Grundy
@Grundy hat den Tippfehlercode korrigiert, bevor er zum Beitrag – ubi