如何仅通过XAML重置TimePicker控件?
纯XAML实现TimePicker重置
想不用后台代码,纯靠XAML点击按钮把TimePicker恢复到未选中状态,你可以借助**XAML行为(Behaviors)**来实现,不需要写任何事件处理程序。
步骤说明:
先给项目添加行为库:
- 如果你用的是WPF(.NET Framework),安装NuGet包
System.Windows.Interactivity.WPF; - 若是.NET 5+/UWP,安装
Microsoft.Xaml.Behaviors.Wpf。
- 如果你用的是WPF(.NET Framework),安装NuGet包
在XAML中引入行为命名空间,然后给重置按钮添加触发逻辑:
<!-- 顶部添加命名空间 --> xmlns:i="http://schemas.microsoft.com/xaml/behaviors" <TimePicker x:Name="ExitTime" Header="Exit Time" MinuteIncrement="1" /> <Button Content="Reset"> <i:Interaction.Triggers> <!-- 监听按钮点击事件 --> <i:EventTrigger EventName="Click"> <!-- 触发TimePicker的SelectedTime属性设为null(未选中状态) --> <i:ChangePropertyAction TargetObject="{Binding ElementName=ExitTime}" PropertyName="SelectedTime" Value="{x:Null}" /> </i:EventTrigger> </i:Interaction.Triggers> </Button>
为什么你之前的绑定无效?
你之前直接把Button.Click绑定到TimePicker.SelectedTime是错误的——Click是事件,不是属性,不能直接和属性做绑定。必须通过行为这类中间层,把事件触发转化为属性更改操作。
内容的提问来源于stack exchange,提问作者mainhar2
相关产品推荐
相关产品推荐

