【发布时间】:2016-09-11 18:17:18
【问题描述】:
我正在 Visual Studio 2015 中开发 UWP(通用 Windows 平台)应用程序。我目前面临这个问题,我想将项目添加到 MenuFlyoutSubItem。基本上,这些项目是播放列表的集合。
我的问题是:
如何将ObservableCollection 或List 绑定到MenuFlyoutSubItem 并在添加新项目时更新项目?我已经从这里尝试过:Bind Obserable Collection to MenuFlyoutSubItem in UWP
public static class MenuExtension
{
public static List<MenuFlyoutItem> GetMyItems(DependencyObject obj)
{ return (List<MenuFlyoutItem>)obj.GetValue(MyItemsProperty); }
public static void SetMyItems(DependencyObject obj, List<MenuFlyoutItem> value)
{ obj.SetValue(MyItemsProperty, value); }
public static readonly DependencyProperty MyItemsProperty =
DependencyProperty.Register("MyItems", typeof(List<MenuFlyoutItem>), typeof(MenuExtension),
new PropertyMetadata(new List<MenuFlyoutItem>(), (sender, e) =>
{
Debug.WriteLine("Filling collection");
var menu = sender as MenuFlyoutSubItem;
menu.Items.Clear();
foreach (var item in e.NewValue as List<MenuFlyoutItem>) menu.Items.Add(item);
}));
}
只要项目不变,这很好,但在我的场景中 Items 会改变。如何向此扩展添加更新?如果在每个弹出窗口上再次创建 Flyout,那么它将更新,但我不知道如何实现此行为。
任何帮助将不胜感激,谢谢。
【问题讨论】:
标签: c# .net list uwp observablecollection