리스트형식의 클래스 객체를 리소스로 만들어 데이터바인딩 하여 보자

2009, Aug 09    

글 제목이 횡설수설한거 같은데

WPF책을 보니 대부분 소스안에 리소스 데이터를 가지고 그걸로 바인딩하는 것만 나와서
글을 쓰게됨(근데 책에 있는데 못찾을 수도 있음.ㅡ_ㅡ;)
먼저 데이터의 원본의 클래스를 만듬.
아래는 내가 만들던 소스의 일부임.
mp3Infos는 mp3Info을 리스트형식으로 만드거임.
그리고 데이터 바인딩을 하려면 INotifyPropertyChanged 인터페이스를 써서

데이터가 변경되는것을 알려줘야함.

class mp3Info : INotifyPropertyChanged{
        
public event PropertyChangedEventHandler PropertyChanged;</p>

        </span>protected void Notify(string propName){
            
if(this.PropertyChanged != null)
            {
                PropertyChanged(
thisnew PropertyChangedEventArgs(propName));
            }
        }</p>

        </span>string path;
        
public string PATH{
            
get return this.path; }
            
set {
                
if (this.path == value) { return; }
                
this.path = value;
                Notify(
"PATH");
            }        
</div>

           .........................................중략

    }
    
class mp3Infos : ObservableCollection<mp3Info>//mp3info

    {</p>

    }</span></div>

</div>

그리고 xaml에 아래의 소스를 추가하여 mp3lnfos클래스를 리소스로 쓰이도록 함.
<Window.Resources>
<WpfMp3TagEdit:mp3Infos x:Key="mp3InfosDS"/>
</Window.Resources>

</div>

아래의 소스는 위에 mp3Infos를 리소스를 올렸던것을 찾아 편집할수 있도록 함.

mp3Infos list = (mp3Infos)
this.FindResource("mp3InfosDS");
list.Add(id3v2parse.read(filepaths[i]));
//데이터를 리소스에 추가.
추가된 리소스로 데이터 바인딩을 하면됨.