按钮单击资源目录中的事件

时间:2012-01-26 11:19:58

标签: c# wpf xaml resourcedictionary

我构建了一个控制模板,带有两个按钮,我在MainWindow类中使用它:

ControlTemplate:

<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}"/>

我收到错误,指出无法找到控件模板中两个按钮的单击事件 - 因为我将其移动到名为MainWindowResources.xaml的ResourceDirectory文件中:

  

'MyWPFApp.MainWindowResource'不包含。的定义   'CustTabButton_Click'并没有扩展方法'CustTabButton_Click'   接受“MyWPFApp.MainWindowResource”类型的第一个参数可以   找到(你错过了使用指令或汇编引用吗?)

我找到了这个链接:Is it possible to set code behind a resource dictionary in WPF for event handling?

是否有更短的方法可以从资源目录中执行MainWindow代码中的click事件?因为将整个代码从MainWindow移动到REsourceDirectory.xaml.code会花费很多时间并暴露给公共的很多变量。

1 个答案:

答案 0 :(得分:1)

您可以使用命令而不是按钮单击并将命令从主窗口绑定到用户控件。