public void Apply(IMenu menu, Context context, object parent) { PlatformExtensions.ValidateTemplate(ItemsSource, Items); var setter = new XmlPropertySetter<IMenu>(menu, context, new BindingSet()); menu.SetBindingMemberValue(AttachedMembers.Object.Parent, parent); setter.SetBinding(nameof(DataContext), DataContext, false); setter.SetBoolProperty(nameof(IsVisible), IsVisible); setter.SetBoolProperty(nameof(IsEnabled), IsEnabled); if (!string.IsNullOrEmpty(Bind)) setter.BindingSet.BindFromExpression(menu, Bind); if (string.IsNullOrEmpty(ItemsSource)) { if (Items != null) { for (int index = 0; index < Items.Count; index++) Items[index].Apply(menu, context, index, index); } } else { menu.SetBindingMemberValue(AttachedMembers.Menu.ItemsSourceGenerator, new MenuItemsSourceGenerator(menu, context, ItemTemplate)); setter.SetBinding(nameof(ItemsSource), ItemsSource, true); } setter.Apply(); }
public void Apply(IMenu menu, Context context, object parent) { PlatformExtensions.ValidateTemplate(ItemsSource, Items); var setter = new XmlPropertySetter <IMenu>(menu, context, new BindingSet()); menu.SetBindingMemberValue(AttachedMembers.Object.Parent, parent); setter.SetBinding(nameof(DataContext), DataContext, false); setter.SetBoolProperty(nameof(IsVisible), IsVisible); setter.SetBoolProperty(nameof(IsEnabled), IsEnabled); if (!string.IsNullOrEmpty(Bind)) { setter.BindingSet.BindFromExpression(menu, Bind); } if (string.IsNullOrEmpty(ItemsSource)) { if (Items != null) { for (int index = 0; index < Items.Count; index++) { Items[index].Apply(menu, context, index, index); } } } else { menu.SetBindingMemberValue(AttachedMembers.Menu.ItemsSourceGenerator, new MenuItemsSourceGenerator(menu, context, ItemTemplate)); setter.SetBinding(nameof(ItemsSource), ItemsSource, true); } setter.Apply(); }