Moin,
das mit den Events geht mir irgendwie nicht bei.
Für das Binding in WPF ist das genannte Event notwendig. In den Docus findet man den Hinweis, dass alles ganz einfach ist und man nur das folgende braucht:
Ich frage mich hier nun, wo wird denn der EventHandler gesetzt? Sollte man nicht erwarten, dass irgendwo stehen muss
Offensichtlich passiert das irgendwo im Hintergrund und man muss sich nicht drum kümmern.
Jetzt habe ich aber das Problem bei einem sehr einfachen Stück Code, dass der EventHandler nicht automatisch gesetzt wird, sprich PropertyChanged ist
Im Netz gibt es viel zu lesen zum Thema, doch hat bei mir nichts zur Lösung beigetragen.
Spoiler anzeigen
Einfacher geht es ja kaum und ich finde keinen Ansatz, was da fehlen sollte. DataContext ist gesetzt, das wird häufig als Ursache genannt, verschiedene Instanzen verschiedener Klassen sind auch nicht vorhanden, ...
Sieht jemand auf Anhieb, was da fehlt? Ich habe das mit anderen Projekten verglichen, in denen ebenfalls nur das Event und dessen Aufruf implementiert sind, und da läuft es nach Lehrbuch.
Im Moment scheint bei mir der Wurm drin zu sein. Nix geht mehr, alles klemmt.
Gruß
MQ
das mit den Events geht mir irgendwie nicht bei.
Für das Binding in WPF ist das genannte Event notwendig. In den Docus findet man den Hinweis, dass alles ganz einfach ist und man nur das folgende braucht:
Ich frage mich hier nun, wo wird denn der EventHandler gesetzt? Sollte man nicht erwarten, dass irgendwo stehen muss
Offensichtlich passiert das irgendwo im Hintergrund und man muss sich nicht drum kümmern.
Jetzt habe ich aber das Problem bei einem sehr einfachen Stück Code, dass der EventHandler nicht automatisch gesetzt wird, sprich PropertyChanged ist
NULL
;Im Netz gibt es viel zu lesen zum Thema, doch hat bei mir nichts zur Lösung beigetragen.
C#-Quellcode
- using System;
- using System.ComponentModel;
- using System.Runtime.CompilerServices;
- using System.Windows;
- using libExcelAddIn;
- using libExcelAddIn.Classes;
- using libExcelAddIn.Views;
- namespace AddInTest
- {
- /// <summary>
- /// Interaction logic for MainWindow.xaml
- /// </summary>
- public partial class MainWindow : Window, INotifyPropertyChanged
- {
- private string _text;
- public event PropertyChangedEventHandler PropertyChanged;
- public void NotifyPropertyChanged([CallerMemberName] string caller = "")
- {
- //PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(caller));
- PropertyChanged(this, new PropertyChangedEventArgs(caller));
- }
- public string Text
- {
- get
- {
- return _text;
- }
- set
- {
- _text = value;
- NotifyPropertyChanged();
- }
- }
- private void Write(string text)
- {
- Text += text;
- }
- private void WriteLine(string text)
- {
- Write(text + Environment.NewLine);
- }
- public MainWindow()
- {
- InitializeComponent();
- DataContext = this;
- //this.PropertyChanged += MainWindow_PropertyChanged;
- WriteLine(DateTime.Now.ToString());
- }
- private void MainWindow_PropertyChanged(object sender, PropertyChangedEventArgs e)
- {
- throw new NotImplementedException();
- }
- private void Beenden_Click(object sender, RoutedEventArgs e)
- {
- Close();
- }
- private void Einstellungen_Click(object sender, RoutedEventArgs e)
- {
- ...
- }
- }
- }
XML-Quellcode
- <Window x:Class="AddInTest.MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:local="clr-namespace:AddInTest"
- mc:Ignorable="d"
- Title="MainWindow" Height="450" Width="800">
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="auto"/>
- <RowDefinition Height="*"/>
- </Grid.RowDefinitions>
- <Menu Grid.Row="0">
- <MenuItem Header="Beenden" Click="Beenden_Click"/>
- <MenuItem Header="Datenbank">
- <MenuItem Header="View Einstellungen" Click="Einstellungen_Click"/>
- </MenuItem>
- </Menu>
- <TextBox Grid.Row="1" Text="{Binding Text}">
- </TextBox>
- </Grid>
- </Window>
Einfacher geht es ja kaum und ich finde keinen Ansatz, was da fehlen sollte. DataContext ist gesetzt, das wird häufig als Ursache genannt, verschiedene Instanzen verschiedener Klassen sind auch nicht vorhanden, ...
Sieht jemand auf Anhieb, was da fehlt? Ich habe das mit anderen Projekten verglichen, in denen ebenfalls nur das Event und dessen Aufruf implementiert sind, und da läuft es nach Lehrbuch.
Im Moment scheint bei mir der Wurm drin zu sein. Nix geht mehr, alles klemmt.
Gruß
MQ