[WPF] Binding Anfänger Frage


#1
Hallo zusammen

Ich brauch mal wider Experten Hilfe ;)

Ich möchte gerne einen Wert aus einer Klasse an eine treeView (später eine liste ist erst mal nur zum testen) binden, das geht eigentlich ganz gut so weit.

Die Frage nun ist aber wie kann ich sie Komplett in xaml Binden. Bis jetzt muss ich im code immer noch einen DataContext setzen.

Code:
treeViewMainwindow.DataContext = meineklasse;
Ich dachte das dies auch nur im xaml möglich ist ohne noch was im code zu schreiben? hier mal meine code:

xamel kopf
Code:
        xmlns:local="clr-namespace:SpyGlassClient.Data.Wcf"
        Title="SpyGlassClient" Height="350" Width="525">
    <ribbon:RibbonWindow.Resources>
        <local:treeViewData x:Key="TreeViewData"/>
    </ribbon:RibbonWindow.Resources>
xamle unten
Code:
<TreeView DockPanel.Dock="Left" Width="150" x:Name="treeViewMainwindow" ItemsSource="{Binding Path=Noods, UpdateSourceTrigger=PropertyChanged}" ></TreeView>
treeViewData.cs
Code:
    public class treeViewData : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        protected void OnPropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        private string noods = "";
        public string Noods
        {
            get {return noods;}
            set 
            {
                noods = value;
                OnPropertyChanged("Noods");
            }
        }

        public void setNoods()
        {           
            Noods = "Test";           
        }
    }
MainWindow.xaml.cs
Code:
private Data.Wcf.treeViewData tvd = new Data.Wcf.treeViewData();
        public MainWindow()
        {
            InitializeComponent();
            treeViewMainwindow.DataContext = tvd;
        }
Vielen dank für die Hilfe Gruss

Ademo
 

Shakie

Erfahrenes Mitglied
#2
Bis jetzt muss ich im code immer noch einen DataContext setzen.

Code:
treeViewMainwindow.DataContext = meineklasse;
Daran ist nichts verwerflich.
Wenn du unbedingt willst, dann könntest du die tvd-Variable als öffentlich (public) deklarieren, dann kannst du an sie binden. Ich sehe aber keinen Vorteil darin.
 
Zuletzt bearbeitet:

Neue Beiträge