我在应用程序中使用MVVM模式。我在处理Usercontrol事件时遇到一些问题。
我有一个名为DatePicker的用户控件,其中包含两个文本框(用于开始日期和结束日期),以及一个按钮,用于从模型中获取特定日期范围的数据。
当我聚焦任何文本框时,我需要更改其边框颜色(例如绿色)。当用户再次输入错误的日期值时,我需要使用红色更改边框颜色。
如果用户输入错误的日期值,那么我也需要禁用该按钮。
处理这些事件的最佳实践是什么?
提前致谢。
注意:我以如下方式修改了应用程序:用户也可以手动输入日期,当开始日期文本框被聚焦时,日历将显示为弹出式菜单,当他/她再次聚焦结束日期文本框时,将显示日历。阻止在开始日期文本框中选择/键入的日期。
抱歉,后期编辑。
最佳答案
如果您需要基于来自用户的无效数据来更新UI的外观,则应查看Data Validation。这是关于该主题的另一个useful link。
若要将边框颜色更改为绿色,应考虑使用样式。不幸的是,我目前无法为您进行测试,但是您应该查看FocusVisualStyle属性。
MSDN文档说:
希望有帮助!在安装了VS的计算机上,我将尝试查看是否可以通过使用FocusVisualStyle
属性获得一个不错的示例。我还没有用过,所以这应该很有趣。 :o)
编辑:
好的,因此对于“焦点突出,突出显示TextBox
边框绿色”,您可以使用与此非常相似的样式。
<Window.Resources>
<Style TargetType="TextBox">
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="Green" />
<Setter Property="BorderThickness" Value="2" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
我将
BorderThickness
增加到2,因此更改为绿色会更加明显。关于wpf - VM中的Usercontrol事件或MVVM中的View,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7055318/