I am trying to bind the text of a text field to a property in my class, and it does not work, I edit the property in the code behind, but I do not see a line in the text field, this is a class, and the property I'm trying to bind is called songFolder.
public class song : INotifyPropertyChanged { public string title {get; set; } public string artist { get; set; } public string path { get; set; } public static string folder; public string songsFolder { get { return folder; } set { folder = value; NotifyPropertyChanged("songsFolder"); } } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(String propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public song() { } public song(string title, string artist, string path) { this.title = title; this.artist = artist; this.path = path; } }
and xaml containing the resource and the text box through which I bind
<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WpfApplication1" Title="Song Filler" Height="455" Width="525"> <Window.Resources> <local:song x:Key="song"/> </Window.Resources> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="auto"/> </Grid.ColumnDefinitions> <TextBox Name="browseBox" Text="{Binding Source={StaticResource ResourceKey=song}, Path=songsFolder, Mode=TwoWay}" Grid.Column="0"></TextBox> <Button Grid.Column="1" Width="auto" Click="Browse">browse</Button> </Grid>
-------------- update ---------------- I added the following line to the ctor window:
BrowseBox.DataContext=new song()
And during debugging, I saw that the property is changing, but the text in the text box is missing.
source share