Laden...

Event aus ResourceDictionary

Erstellt von Camouflagezebra vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.621 Views
C
Camouflagezebra Themenstarter:in
10 Beiträge seit 2010
vor 11 Jahren
Event aus ResourceDictionary

Hallo,

Ich habe einen Button in einem ResourceDictionary, das in mein MainWindow-XAML eingebunden ist.

Nun möchte ich eine Click-Event für diesen Button erstellen das im CodeBehind des MainWindow ausgeführt werden soll.


<ResourceDictionary 
                    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:s="clr-namespace:label">

    <Grid x:Key="MyLabelEditor" Margin="0,5,0,5">
<!-- ... -->
        <TextBox Grid.Row="9" Grid.Column="0" Grid.ColumnSpan="2" Margin="4,0,10,0" Text="{Binding Path=labelName, Mode=TwoWay}"/>

        <Button Name="btnCreate" Content="Erstellen" Grid.Row="10" Grid.Column="1" Margin="4,10,10,0" Click="btnCreateClick"/>

    </Grid>

</ResourceDictionary>   

  public partial class MainWindow : Window
    {
        private LabelBlock lb = new LabelBlock();

        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = lb;               
        }

        private void btnCreateClick(object sender, RoutedEventArgs e)
        {
// ...
        }
    }

Wenn ich es so versuche kommt mir folgende Fehlermeldung:
Für das Stammelement "ResourceDictionary" ist ein x:Class-Attribut erforderlich, damit Ereignishandler in der XAML-Datei unterstützt werden. Entfernen Sie entweder den Ereignishandler für das Click-Ereignis, oder fügen Sie dem Stammelement ein x:Class-Attribut hinzu.

Mir ist klar dass er ein CodeBehind für das ResourceDictionary will, aber dass will ich nicht 😉

Komischerweise kann ich aus dem gleichen RD ein Binding erstellen das den DataContext des MainWindow betrifft.

Kann ich auf einfache weiße das Event im CodeBehind des MainWindow auslösen?
bzw. Muss ich dafür wirklich ein RoutedCommand im MainWindow erstellen oder gibts da eine andere Lösung?
Unter Umständen muss ich noch ziemlich viele Buttons erstellen und ich will nicht jedes mal über RoutedCommand und CommandBindings lösen müssen.

greetz
zebra