Laden...

Datenbindung zwischen mehreren Seiten

Erstellt von theSoulT vor 3 Jahren Letzter Beitrag vor 3 Jahren 292 Views
T
theSoulT Themenstarter:in
64 Beiträge seit 2018
vor 3 Jahren
Datenbindung zwischen mehreren Seiten

Hallo zusammen,

ich hoffe ihr könnt mir hier etwas weiterhelfen. Ich möchte eine Datenbindung zwischen mehreren Pages erstellen. Ich habe auf der Seite "infos" eine Textbox. Auf meiner MainWindow Page soll ein Label den Inhalt der Textbox anzeigen. Mit unterschiedlichen Buttons kann man zwischen den Seiten wechseln.

Hier sind meine Codeteile:
MainWindow.cs


    public partial class MainWindow : Window
    {
        Person person1;
        public MainWindow()
        {
            InitializeComponent();
            person1 = new Person()
            {
                Name = "John Doe",
                City = "CiytNumberOne"
            };
            this.DataContext = person1;
        }

        private void btnDashboard_Click(object sender, RoutedEventArgs e)
        {
            PageHolder.Content = new dashboard();
        }

        private void Infos_Click(object sender, RoutedEventArgs e)
        {
            PageHolder.Content = new infos();
        }
    }

Person.cs


class Person : INotifyPropertyChanged
    {
        private string _name;
        private string _city;
        public string Name
        {
            get { return _name; }
            set
            {
                _name = value;
                OnPropertyChanged("Name");
            }
        }
        public string City
        {
            get { return _city; }
            set
            {
                _city = value;
                OnPropertyChanged("City");
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged(string info)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }

MainWindow.xaml


<Grid>
        <StackPanel>
            <StackPanel Orientation="Horizontal">
                <Button x:Name="Infos" Content="Infos" Margin="10 0" Click="Infos_Click"/>
                <Button x:Name="btnDashboard" Content="Dashboard" Margin="10 0" Click="btnDashboard_Click"/>
            </StackPanel>
            <Label Content="Name:"/>
            <Label Content="{Binding Name}"/>
            <Separator/>
            <Frame x:Name="PageHolder" Source="infos.xaml" NavigationUIVisibility="Hidden" />
        </StackPanel>
    </Grid>

Könnt ihr mir hier bitte weiterhelfen bei der Datenbindung?

16.834 Beiträge seit 2008
vor 3 Jahren

Sowas macht man über Messaging; kann man sehr einfach mit Reactive Extensions lösen, was hier auch schon viele Male im Forum verlinkt wurde.
https://oz-code.com/blog/net-c-tips/reactive-wpf-part-1-introduction-to-reactive-extensions

dotnet/reactive
reactiveui/ReactiveUI