Wpf Usercontrol,检查是否绑定了RoutedEvent

时间:2017-02-10 10:42:16

标签: c# wpf user-controls routed-events routedevent

我有以下UserControl:

<UserControl x:Class="DueVCheck.Pl.Gui.CustomControl.ListInfoBar"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:local="clr-namespace:DueVCheck.Pl.Gui.CustomControl"
         mc:Ignorable="d" d:DataContext="{d:DesignInstance local:ListInfoBar}" >      
    <Button Name="NewRowBtn" Margin="5" Click="NewRowBtn_OnClick" Content="New"/>
</UserControl>   

Code-Behind文件:

using System.Windows;

namespace DueVCheck.Pl.Gui.CustomControl
{
    public partial class ListInfoBar
    {       
        public ListInfoBar()
        {
            DataContext = this;
            InitializeComponent();
        }

        public static readonly RoutedEvent NewClickEvent =
        EventManager.RegisterRoutedEvent("NewClick", RoutingStrategy.Bubble,
            typeof(RoutedEventHandler), typeof(ListInfoBar));

        public event RoutedEventHandler NewClick
        {
            add { AddHandler(NewClickEvent, value); }
            remove { RemoveHandler(NewClickEvent, value); }
        }

        private void NewRowBtn_OnClick(object sender, RoutedEventArgs e) 
        { 
            RaiseEvent(new RoutedEventArgs(NewClickEvent)); }
        }
    }
}

Usercontrol的用法:

<customControl:ListInfoBar Margin="10,0,10,0" NewClick="NewRowOnClick"/>

我需要的是,只要NewClick未通过XAML绑定,Usercontrol就会禁用NewRowBtn。问题是在通过XAML绑定事件时,从不调用添加或删除。 如何解决这个问题?

0 个答案:

没有答案