Я пытаюсь создать шаблон данных для меню панели инструментов. Имеется 4 варианта для разных меню. Поэтому я решил go с шаблонами данных. Вот так суть моего кода.
xaml
<StackPanel Grid.Row="1" x:Name="ControlPanelMenuContainer">
<ItemsControl ItemsSource="{Binding MenuItemsNeeded}" Name="DashboardButtonList">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Command="{Binding Command}">
<Button.Content>
<Grid>
<TextBlock Text="{Binding Text}"></TextBlock>
<UserControl:Icomoon IcoIcon="{Binding Icon}" />
</Grid>
</Button.Content>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
код позади пунктов меню Класс
class MenuItems
{
private ICommand _PrivateCommandName;
private string _PrivateIcon;
private string _PrivateTitle;
public ICommand CommandName
{
get { return _PrivateCommandName; }
private set { _PrivateCommandName = value; }
}
public string Icon
{
get { return _PrivateIcon; }
private set { _PrivateIcon = value; }
}
public string Title
{
get { return _PrivateTitle; }
private set { _PrivateTitle = value; }
}
public MenuItems(string title, string icon, ICommand command)
{
Icon = icon;
Title = title;
CommandName = command;
}
}
Код позади сжатого главного объекта
MVVM.IControllerMVVM MVVM = new MVVM.IControllerMVVM();
List<MenuItems> MenuItemsNeeded = new List<MenuItems>();
if(User_Who_IsLoggedOn == 0)
{
MenuItemsNeeded.Add(new MenuItems("Data Matrix", "Document", MVVM.GotoDataMatrixDowntimeCommand));
MenuItemsNeeded.Add(new MenuItems("Documents", "Document", MVVM.GotoDocumentsCommand));
MenuItemsNeeded.Add(new MenuItems("Inventory", "FilledBox", MVVM.GotoInventoryCommand));
MenuItemsNeeded.Add(new MenuItems("CorkBoard", "Comment", MVVM.GotoCorkboardCommand));
MenuItemsNeeded.Add(new MenuItems("Quality Assurance", "Measure", MVVM.GotoQCQACommand));
MenuItemsNeeded.Add(new MenuItems("Statistics", "LineGraph", MVVM.GotoStatisticsCommand));
MenuItemsNeeded.Add(new MenuItems("Safety", "Warning", MVVM.GotoSafetySheetCommand));
MenuItemsNeeded.Add(new MenuItems("Calendar", "Warning", MVVM.GotoEditorCommand));
}
Итак, как вы можете видеть в части кода XAML, я связал все свои свойства с соответствующими объектами. пока что ничего не появляется должным образом. Я впервые использую объект управления предметами, и да, я все еще изучаю привязки. Я смотрю видео и читаю статьи онлайн и на stackoverflow. Но ни одна из которых, я считаю, не соответствует моим потребностям. Который является привязкой с привязкой и многое другое. Прямо сейчас я не совсем уверен, почему ничто даже не заполняет панель стека вообще.
РЕДАКТИРОВАТЬ относительно PHOENIX Ответ
Я добавил publi c свойство для MenuItemsNeeded
private List<MenuItems> _MenuItemsNeeded = new List<MenuItems>();
public List<MenuItems> MenuItemsNeeded
{
get { return _MenuItemsNeeded; }
}
Теперь все работает, кроме привязки для раздела Имя команды.
<Button Height="40" Grid.Row="1" Style="{StaticResource NavButton}" Command="{Binding CommandName}">