如何以编程方式为FrameworkElementFactory添加点击事件

3
我将尝试在代码中为数据模板进行程序化应用。我已经成功设置了属性,但是我不知道如何添加点击事件。请问我该怎么做呢?
需要复制的Xaml代码:
<DataTemplate>
                <telerik:RadToggleButton Content="+" 
                                         Width="20" 
                                         Height="20" 
                                         HorizontalContentAlignment="Center"                                                         
                                         VerticalContentAlignment="Center"       
                                         Click="RiskButton_OnClick"
                                         Visibility="{Binding AttachmentVisibility, Mode=TwoWay, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</DataTemplate>

我目前拥有的

var toggleButton = new FrameworkElementFactory(typeof(RadToggleButton));
toggleButton.SetValue(RadToggleButton.ContentProperty, "+");
toggleButton.SetValue(RadToggleButton.WidthProperty, 20.0);
toggleButton.SetValue(RadToggleButton.HeightProperty, 20.0);
toggleButton.SetValue(RadToggleButton.HorizontalContentAlignmentProperty, HorizontalAlignment.Center);
toggleButton.SetValue(RadToggleButton.VerticalAlignmentProperty, VerticalAlignment.Center);
//toggleButton.AddHandler(); <- what goes here?

DataTemplate dt = new DataTemplate
{
    VisualTree = toggleButton
};

dt.Seal();

2
Ed建议使用不同的方法 - AddHandler而不是SetValue。 - undefined
1
@Evk 谢谢!我真是眼睛像蝙蝠一样瞎了哈哈。 - undefined
1个回答

6
toggleButton.AddHandler(RadToggleButton.ClickEvent, new RoutedEventHandler(SomeHandler));

SomeHandler 是一个 RoutedEventHandler:

public void SomeHandler(object sender, RoutedEventArgs e) 
{
}

1
嗨@Ed plunkett,谢谢你的回答。我刚刚尝试了一下使用普通按钮,但是出现了一个错误,提示System.Windows.RoutedEvent不能分配给参数类型System.Windows.DepencyProperty - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接