Как выставить событие из элемента управления в ResourceDictionary - PullRequest
0 голосов
/ 26 октября 2018

Я проектирую UserControl, где это относится к ResourceDictionary.UserControl имеет <ItemsControl>, где его ItemTemplate определено в ResourceDictionary.
Вкратце, этот <ItemsControl.ItemsSource> принимает набор строк, а DataTemplate присваивает <Button> для каждой строки.Это динамическая коллекция кнопок со строкой коллекции в качестве источника.

UserControl объявление ItemsControl:

<ItemsControl Name="PanelMain" Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="1"
              ItemsSource="{Binding Path=MenuMain}" 
              ItemTemplate="{StaticResource MenuItemTemplate}">    
</ItemsControl>

Шаблон ResourceDictionary:

<DataTemplate x:Key="MenuItemTemplate" DataType="ItemsControl">
  <Button Style="{StaticResource MenuItemStyle}" Content="{Binding}" >
  </Button>
</DataTemplate>

<Style x:Key="MenuItemStyle" TargetType="Button">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Border Background="{TemplateBinding Background}" BorderThickness="0" Height="30">
                    <ContentControl Foreground="{TemplateBinding Foreground}" VerticalAlignment="Center">
                        <ContentControl.Content>
                            <TemplateBinding Property="Content"/>
                        </ContentControl.Content>
                    </ContentControl>
                </Border>                    
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Теперь мне нужно подключить каждый щелчок кнопки ккоманда.Поскольку эти кнопки определены внутри ResourceDictionary, я не уверен, как связать свою команду.В некоторых ответах указывалось на создание файла с выделенным кодом (.xaml.cs) для ResourceDictionary, но я хотел бы знать, возможно ли предоставить команду в качестве ресурса с ключом , поэтому его UserControlможет связать это вместо словаря?

Примечание: UserControl должен отображать заголовок нажатой кнопки в виде строки

...