[英]Call a custom control's function in the XAML at KeyUp
我有一个从AutoCompleteBox
扩展的自定义AutoCompleteBoxEx
控件。 在 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}">
重要的部分是KeyUp
和MouseLeftButtonUp
,我想分别为它们运行AutoCompleteBox_KeyUp
和AutoCompleteBox_MouseLeftButtonUp
函数。 通常这些可以在代码隐藏中定义,但我想避免这样做,并且希望我可以在自定义控件本身中拥有这些功能。
我在我的 xaml 中定义了自定义控件的上下文:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:customControls="clr-namespace:ptw.UI.CustomControls">
所以我可能会做一些类似customControls:AutoCompleteBoxEx.AutoCompleteBox_KeyUp
事情,但它似乎无法找到它(无法解析符号)。
我仍然习惯了 WPF,所以我想知道是否有办法做到这一点?
...并且希望我可以在自定义控件本身中使用这些功能
如果您希望在“自定义控件本身”中定义事件处理程序,您可以使用+=
语法将它们挂接到AutoCompleteBoxEx
类的构造函数中:
public AutoCompleteBoxEx()
{
this.KeyUp += AutoCompleteBox_KeyUp;
this.MouseLeftButtonUp += AutoCompleteBox_MouseLeftButtonUp;
}
然后它们将默认出现在AutoCompleteBoxEx
每个实例中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.