如何在MasterPage后面的代码中和function sortCallback(a, b) {
function padParts(version) {
return version
.split('.')
.map(function (part) {
return '00000000'.substr(0, 8 - part.length) + part;
})
.join('.');
}
a = padParts(a);
b = padParts(b);
return a.localeCompare(b);
}
函数内收听MasterPage.OnItemSelected?或者我应该在viewmodel中以某种方式执行此操作?
答案 0 :(得分:1)
您可以使用Observable.FromEventPattern。 假设您在MasterPage中使用ListView:
this.WhenActivated (d => {
Observable.FromEventPattern (h => MasterPage.ListView.ItemSelected += h,
h => MasterPage.ListView.ItemSelected -= h)
.Subscribe (DoSomethingWithMySelectedItem)
.DisposeWith (d);
});
答案 1 :(得分:0)
Observable.FromEventPattern<SelectedItemChangedEventArgs>(h => masterPage.ListView.ItemSelected += h,
h => masterPage.ListView.ItemSelected -= h)
.Subscribe(x => OnItemSelected(x.Sender, x.EventArgs))
.DisposeWith(disposables);
...
void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
if (e.SelectedItem is MasterPageItem item)
{
var nextPage = new NavigationPage((Page)Activator.CreateInstance(item.TargetType));
nextPage.BarBackgroundColor = Constants.ToolbarColor;
nextPage.BarTextColor = Constants.ToolbarTextColor;
Detail = nextPage;
masterPage.ListView.SelectedItem = null;
IsPresented = false;
}
}