myCSharp.de - DIE C# und .NET Community (https://www.mycsharp.de/wbb2/index.php)
- Gemeinschaft (https://www.mycsharp.de/wbb2/board.php?boardid=64)
-- .NET-Komponenten und C#-Snippets (https://www.mycsharp.de/wbb2/board.php?boardid=67)
--- WPF - BaseUserControl (https://www.mycsharp.de/wbb2/thread.php?threadid=116220)


Geschrieben von trashkid2000 am 20.12.2015 um 14:07:
  WPF - BaseUserControl
Liebe Alle,

ich möchte gerne mein endecktes Wissen weitergeben, deswegen poste ich hier mal.

Vor kurzem stand ich auf Arbeit vor der Aufgabenstellung, WPF - UserControls mit Hilfe von T4 zu generieren. Also für jede Sicht nur eine .xaml - Datei. Problem dabei ist, dass man für den Aufruf von "InitializeComponent();" ja auch immer eine partial .cs benötigt. Nartürlich wäre es möglich, wenn man schon beim generieren ist, für jedes Control auch die partial -cs mit zu generieren, aber wozu? Ein genereller Weg wäre solch ein BaseUserControl:

C#-Code:
public class BaseUserControl : UserControl
{
   public BaseUserControl()
   {
      var iComponentConnector = this as IComponentConnector;
      if (iComponentConnector != null)
      {
          iComponentConnector.InitializeComponent();
      }
   }
}

Und die generiert xaml dazu würde dann z.B. so aussehen:

XML-Code:
<local:BaseUserControl x:Class="WpfApplication11.TestUserControl"
      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="clr-namespace:WpfApplication11"
>

    <Grid>
        <TextBlock Text="Hallo"/>
    </Grid>
</local:BaseUserControl>

Das UserControl kann so problemlos im Designer angezeigt werden.

lG und viel Spaß beim Generieren :-)


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 18.08.2019 00:57