我在应用程序中使用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/

10-13 02:44