在我的UWP应用程序中,当我清除绑定集合并再次填充它时,我的绑定视图会更新,但是当我实例化新集合时它不会更新
这会更新视图:
if (CurrentPivotHeader != "author") AuthorFacets.Clear();
这不会更新视图:
if (CurrentPivotHeader != "author") AuthorFacets = new ObservableCollection<IFacet>();
这是我的XAML:
<ListBox ItemsSource="{x:Bind AuthorFacets , Mode=OneWay}"
Name="AuthorListBox"
SelectionMode="Multiple"
SelectionChanged="AuthorListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate x:DataType="local:IFacet">
<StackPanel>
<TextBlock Text="{x:Bind read}" FontSize="10"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
由于其他一些问题,我无法使用Clear()
方法。有没有办法更新实例化视图?
答案 0 :(得分:1)
您需要实现INotifyPropertyChanged
接口并为PropertyChanged
属性举起AuthorFacets
事件:
public sealed partial class MainPage : Page, INotifyPropertyChanged
{
...
private ObservableCollection<IFacet> _authorFacets;
public ObservableCollection<IFacet> AuthorFacets
{
get { return _authorFacets; }
set { _authorFacets = value; RaisePropertyChanged(nameof(AuthorFacets)); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
}