/ / Wie setze ich Grid-Inhalt mit XAML-Daten von Socket - c #, wpf, xaml

Wie man Grid-Inhalt mit XAML-Daten von Socket - c #, wpf, xaml

Ich weiß nicht, welche Daten es sein wird ... Ich bekomme XAML von Socket (Beispiel):

    <Grid>
<Grid.RowDefinitions>
<RowDefinition Height="180.036*" />
<RowDefinition Height="81.964*" />
</Grid.RowDefinitions>
<Button Margin="0,5.282,0,0" Name="button1" HorizontalAlignment="Left" Grid.Row="1" Width="109.633" Click="button1_Click">Button</Button>
<TextBox Grid.Row="0" HorizontalAlignment="Right" Margin="0,13.336,0,0" Name="textBox1" Width="123.358" Height="68.628" VerticalAlignment="Top" />

</Grid>

Wie ändere ich den Inhalt des aktuellen Rasters in den Inhalt, den ich während des Laufs erhalte?

Antworten:

0 für die Antwort № 1

Sie können den XamlReader verwenden, um das Xaml zu analysieren, das Sie erhalten:

UIElement root = XamlReader.Parse(xaml) as UIElement;
myGrid.Children.Clear();
if(root != null)
myGrid.Children.Add(root);

Das Xaml muss jedoch einige Bedingungen erfüllen. Alle Namespaces müssen im Wurzelknoten des XAML enthalten sein. Beispiel:

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Grid.RowDefinitions>
....

Außerdem darf es keine Referenzen in derXAML, das nicht gelöst werden kann. Z.B. In dem von Ihnen bereitgestellten XAML gibt es einen Verweis auf einen Click-Ereignishandler, der nicht aufgelöst werden kann. Sie können den Klick-Handler nach dem Parsen des Codes hinzufügen.