Binding UWP如何在page类之外更改ListView绑定可观察集合
我有一个页面,上面有一个列表视图,它的项源绑定到一个可观察的集合属性,这当然是非静态的。 我的问题是如何在listview所在的Page类之外访问或更改该集合。Binding UWP如何在page类之外更改ListView绑定可观察集合,binding,win-universal-app,non-static,Binding,Win Universal App,Non Static,我有一个页面,上面有一个列表视图,它的项源绑定到一个可观察的集合属性,这当然是非静态的。 我的问题是如何在listview所在的Page类之外访问或更改该集合。 我想在外部更改该集合,因为我还想从其他页面更改或向该列表视图添加新项目 我正在用App.xaml.cs中的静态属性解决这个问题。 因此,我可以从我想要的任何页面访问我的存储库/集合。 每次导航到页面时,我都会通过绑定属性访问App.MyCollection 您可以创建一个属性,getter将在其中创建一个新的ObervableColle
我想在外部更改该集合,因为我还想从其他页面更改或向该列表视图添加新项目 我正在用App.xaml.cs中的静态属性解决这个问题。 因此,我可以从我想要的任何页面访问我的存储库/集合。 每次导航到页面时,我都会通过绑定属性访问App.MyCollection 您可以创建一个属性,getter将在其中创建一个新的ObervableCollection(App.MyCollection); 如果当前私有成员为空 App.xaml.cs
private static IEnumerable<OrderHistory> _orderHistory;
public static IEnumerable<OrderHistory> OrderHistory
{
get
{
if (_orderHistory == null)
_orderHistory = new ObservableCollection<OrderHistory>();
return _orderHistory;
}
set
{
if (_orderHistory != value)
_orderHistory = value;
}
}
}
我正在用App.xaml.cs中的静态属性解决这个问题。 因此,我可以从我想要的任何页面访问我的存储库/集合。 每次导航到页面时,我都会通过绑定属性访问App.MyCollection 您可以创建一个属性,getter将在其中创建一个新的ObervableCollection(App.MyCollection); 如果当前私有成员为空 App.xaml.cs
private static IEnumerable<OrderHistory> _orderHistory;
public static IEnumerable<OrderHistory> OrderHistory
{
get
{
if (_orderHistory == null)
_orderHistory = new ObservableCollection<OrderHistory>();
return _orderHistory;
}
set
{
if (_orderHistory != value)
_orderHistory = value;
}
}
}
我不明白你到底在建议什么,你能用一些代码澄清一下吗?谢谢附言:我试着制作一个静态的公共财产,并将私人收藏分配给它。然后我对它进行了更改,但是更改只发生在该静态属性中,并且我的ListView项目没有被更新。我编辑了这篇文章。请看一下这是否对你有帮助。非常感谢。这很容易理解,而且对我也有帮助:)我不明白你到底在建议什么,你能用一些代码澄清一下吗?谢谢附言:我试着制作一个静态的公共财产,并将私人收藏分配给它。然后我对它进行了更改,但是更改只发生在该静态属性中,并且我的ListView项目没有被更新。我编辑了这篇文章。请看一下这是否对您有帮助。非常感谢这很容易理解,而且对我也有帮助:)
public class OrderHistory : INotifyPropertyChanged
{
private bool _isAvailable;
public bool IsAvailable {
get
{
return _isAvailable;
}
set
{
if(_isAvailable != value)
{
_isAvailable = value;
this.NotifyPropertyChanged();
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}