C# 调用自定义控件';s函数在XAML中的键控
我有一个自定义的C# 调用自定义控件';s函数在XAML中的键控,c#,wpf,xaml,C#,Wpf,Xaml,我有一个自定义的AutoCompleteBox控件,它扩展自AutoCompleteBox。在xaml中,定义如下: <customControlsPtw:AutoCompleteBoxEx x:Name="PART_TextBox" Grid.Row="0" Grid.Column="0" Padding="2,2,22,2" Horiz
AutoCompleteBox
控件,它扩展自AutoCompleteBox
。在xaml中,定义如下:
<customControlsPtw:AutoCompleteBoxEx x:Name="PART_TextBox"
Grid.Row="0"
Grid.Column="0"
Padding="2,2,22,2"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Top"
IsTextCompletionEnabled="False"
KeyUp="AutoCompleteBox_KeyUp"
MouseLeftButtonUp="AutoCompleteBox_MouseLeftButtonUp"
ItemsSource="{TemplateBinding ItemsSource}"
Text="{Binding Text,
RelativeSource={RelativeSource TemplatedParent},
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"
TextWrapping="{TemplateBinding TextWrapping}">
所以我可能会做一些类似于customControls:AutoCompleteBox.AutoCompleteBox\u KeyUp
,但它似乎无法找到它(无法解析符号)
我仍然习惯WPF,所以我想知道是否有一种方法可以做到这一点
…如果我能在自定义控件中拥有这些函数,我会更愿意
如果希望在“自定义控件本身”中定义事件处理程序,可以使用+=
语法将它们连接到AutoCompleteBoxEx
类的构造函数中:
public AutoCompleteBoxEx()
{
this.KeyUp += AutoCompleteBox_KeyUp;
this.MouseLeftButtonUp += AutoCompleteBox_MouseLeftButtonUp;
}
然后默认情况下,它们会出现在
AutoCompleteBoxEx
的每个实例中。“通常,这些可以在后面的代码中定义,但我希望避免这样做,如果我可以在自定义控件本身中拥有这些函数,我会更喜欢”-所有控件通常都有一些c代码来表示它们的属性和功能。你为什么要避免这种情况?
public AutoCompleteBoxEx()
{
this.KeyUp += AutoCompleteBox_KeyUp;
this.MouseLeftButtonUp += AutoCompleteBox_MouseLeftButtonUp;
}