텍스트 상자의 텍스트를 내 클래스의 속성에 바인딩하려고하는데 작동하지 않고 코드의 속성을 편집하고 있지만 텍스트 상자에 문자열이 표시되지 않습니다. 이것은 클래스이며, 바인딩하려는 속성은 songFolder입니다. 자원 난 바인딩 트링하고 텍스트 박스 느릅 함유 wpf 텍스트 상자 텍스트 바인딩
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;
}
}
및 XAML
,<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- --------------- 나는 창에 ctor에 다음 줄을 추가 :
BrowseBox.DataContext=new song()
그리고 디버깅하는 동안 나는 재산가 c 것을보고 걸려 있지만 텍스트 상자의 텍스트가 아닙니다.
귀하의 통지 :
는그런 다음 업데이트 텍스트 상자에 발견 이벤트에 잘못된 속성이 있습니다 :'NotifyPropertyChanged ("sPath");'NotifyPropertyChanged ("songsFolder")'이어야합니다. – McGarnagle
고마워, 변경 했어. 여전히 작동하지 않아. – alostr
그냥 "작동하지 않는"것 이상의 잘못된 점을 설명하면 도움이 될 것입니다 ... – McGarnagle