Событие нажатия кнопки из каталога ресурсов - PullRequest
0 голосов
/ 26 января 2012

Я создал шаблон управления с двумя кнопками, которые я использую в классе MainWindow:

Шаблон управления:

<ControlTemplate x:Key="LeftPanelTemplate">
    <Grid  Grid.Column="0"  Grid.Row="0" Margin="10,15,5,5" >
        <Border BorderThickness="7" CornerRadius="4">
            <Border.BorderBrush>
                <SolidColorBrush Color="#73B2F5" Opacity="0.5"/>
            </Border.BorderBrush>
            <Grid>
                <Grid.Background>
                    <SolidColorBrush Color="#73B2F5" Opacity="0.5"/>
                </Grid.Background>
                <Grid.RowDefinitions>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="1*"/>
                </Grid.RowDefinitions>
                <Button Name="CustomerButton" Grid.Row="1" Grid.Column="0" Width="40" Height="40" Content="Customer" Click="CustTabButton_Click" ></Button>
                <Button Name="BossButton" Grid.Row="1" Width="40" Height="40" Content="Boss" Margin="23,206,23,114" Click="BossTabButton_Click"></Button>
            </Grid>
        </Border>
    </Grid>
</ControlTemplate>

Я ссылаюсь на это в MainWindow XAML:

<ContentControl Template="{StaticResource LeftPanelTemplate}"/>

Я получаю сообщение об ошибке, что события щелчка двух кнопок внутри шаблона элемента управления не могут быть найдены - поскольку я переместил его в файл ResourceDirectory с именем MainWindowResources.xaml:

«MyWPFApp.MainWindowResource» не содержит определения для «CustTabButton_Click» и без метода расширения «CustTabButton_Click» Принятие первого аргумента типа «MyWPFApp.MainWindowResource» может быть найденным (вам не хватает директивы using или ссылки на сборку?)

Я нашел эту ссылку: Можно ли установить код за словарем ресурсов в WPF для обработки событий?

Есть ли более короткий путь для событий щелчка в коде MainWindow, выполняемых из каталога ресурсов? потому что перемещение всего кода из MainWindow в REsourceDirectory.xaml.code может занять много времени и обнародовать множество переменных.

1 Ответ

1 голос
/ 26 января 2012

вы можете использовать команды вместо нажатия кнопки и привязать команды из главного окна к пользовательскому контролю.

...