Laden...

Generic UserControl --> Wie in XAML verwenden

Erstellt von CyberHunter vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.533 Views
C
CyberHunter Themenstarter:in
131 Beiträge seit 2007
vor 12 Jahren
Generic UserControl --> Wie in XAML verwenden

Hallo zusammen,

Ich möchte in meiner WPF Anwendung auf mehreren Pages ein Generisches Control verwenden:



namespace meineAnwendung.Controls
{
public class meinDataGrid<T> : Datagrid
{
//...
}
}


Wie kann ich dieses Control nun in XAML verwenden?
Habe folgenden Ansatz versucht:


<Page x:Class="meineAnwendung.Page1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:local="meineAnwendung.Controls"
      xmlns:objects="meineAnwendung.Objects"
Titel="Meine Anwendung">

<local:meinDataGrid x:Name="dg" x:TypeArguments="objects:MeinObject" AutoGenerateColumns="True" />

</Page>

Im Namespace meineAnwendung.Controls sitzt das Objekt "MeinObject".

Wenn ich das ganze Compilieren will bekomme ich die Fehlermeldung:> Fehlermeldung:

Nur ein Stammtag kann Attribut "x:TypeArguments" angeben.

Das Stammtag wäre ja wohl das <Page> Tag, jedoch kann ich dort den Typ ebenfalls nicht angeben.

Danke für eure Hilfe
CyberHunter

6.862 Beiträge seit 2003
vor 12 Jahren

Hallo,

Wie kann ich dieses Control nun in XAML verwenden? gar nicht. Für kompiliertes XAML wird nur die Version von 2006 in WPF unterstützt und die lässt generische Typen, so wie die Fehlermeldung es sagt, auf dem Rootelement zu (PageFunction wäre z.B. so eine generische WPF Klasse). Siehe dazu auch hier in der MSDN.

PS: In der Überschrift schreibst du zwar UserControl, was du aber eigentlich hast ist ein Custom Control. Das ist in WPF nen großer Unterschied.

Baka wa shinanakya naoranai.

Mein XING Profil.

C
CyberHunter Themenstarter:in
131 Beiträge seit 2007
vor 12 Jahren

Danke für deine Antwort, dann werde ich mir wohl was einfallen lassen müssen.