0

listviewitemプロパティにバインドされているtextblockのテキストを更新したいと思います。これは、テキストブロックをリストビューアイテムにバインドする方法です。

mWindow.xaml

<ListView Name="ListViewDetails"               
      ItemsSource="{Binding Persons}" 
      SelectedItem="{Binding CurrentPerson}">
      ...
</ListView> 

<TextBlock>
     <Run Text="{Binding ElementName=ListViewDetails, Path=SelectedItem.Office}"/>
     ...
</TextBlock>

リストビューのアイテムプロパティが変更された場合、テキストは更新されません。

mWindow.xaml.cs

public partial class mWindow: Window , INotifyPropertyChanged 
{

            private Person currentPerson;
            public Person CurrentPerson
            {
                get
                {
                    return currentPerson;
                }
                set
                {
                    this.currentPerson = value;
                    this.NotifyPropertyChanged("CurrentPerson"); 
                }
            }

            public event PropertyChangedEventHandler PropertyChanged;
            private void NotifyPropertyChanged(string propertyName)
            {
                var handler = this.PropertyChanged;
                if (handler != null)
                {
                    handler(this, new PropertyChangedEventArgs(propertyName));
                }

            }

            private void editLisView{

            ...

            // refresh ListView
            ICollectionView view =CollectionViewSource.GetDefaultView(ListViewInsuranceDetails.ItemsSource);
            view.Refresh();
            }

}
4

1 に答える 1

0

CurrentPersonプロパティにINotifyPropertyChangedを実装する必要があると思いました。個人クラスにINotifyPropertyChangedを実装すると、機能します。

于 2012-12-27T09:25:07.343 に答える