如何绑定按钮以关闭窗口样式中的命令

时间:2012-05-04 12:51:48

标签: .net wpf xaml

我想在窗口样式中创建一个自定义关闭按钮,它依赖于窗口的关闭命令。 我写了这样的话:

<Style x:Key="WindowsGeneralStyle"  TargetType="Window">
   ...
    <Setter Property="Template" >
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Window}">
                <Grid>
                     ...
                     <Button x:Name="closebtn" Command={Binding Close} ... />
                </Grid> 
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

但它不起作用。这是怎么回事?

2 个答案:

答案 0 :(得分:1)

我解决了问题。我为ResourceDictionary创建了一个分部类,在后面的代码中我处理了关闭按钮单击事件:

ResourceDictionary XAML文件:

    <ResourceDictionary ...  x:Class="MyNameSpace.WindowStyle">
    ...
    <Style x:Key="WindowsGeneralStyle"  TargetType="Window">
            <Setter Property="Template" >
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Window}">
                        <Grid>
                             ...
                             <Button x:Name="closebtn"  Click="CloseBTN_Clicked" ... />
                        </Grid> 
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
</ResourceDictionary>

并在代码后面:

namespace MyNameSpace
{
    public partial class WindowStyle
    {
        private void CloseBTN_Clicked(object sender, RoutedEventArgs e)
        {
            Window.GetWindow(((FrameworkElement)e.Source)).Close();
        }
    }
}

现在,它运作得很好!

答案 1 :(得分:0)

{Binding Close}尝试绑定到当前Close 中的DataContext命令,您可能想要{x:Static ApplicationCommands.Close}之类的内容。