2010-06-14 128 views
2

我使用的是来自WPF工具包的MaskedTextbox for .NET 3.5 SP1。我在WPF页面上有一个MaskedTextbox,它从SQL Server数据库中填充得很好,但是当我尝试编辑这个值时什么都没有发生。我可以选择任何东西,但是键入它,或者按下删除键或其他任何我可以做的事情,都不会对那里的价值产生任何影响。我想用它来允许用户输入或编辑时间值,如下所示:上午9:30将显示为“09:30 AM”。下面是我所指定的XAML:使用MaskedTextbox输入时间值时遇到问题

<cusControls:MaskedTextBox x:Name="mtbTime" 
     Mask="90:00 >LL" Margin="5,0,0,0" 
     Text="{Binding ElementName=ThisDateTime,Path=TimePart,Converter={StaticResource NullableTimeToUnderscoreConverter}}" /> 

(这是我在做所谓的“ThisDateTime”用户控制的一部分。)我在做什么错了,我怎么解决?

+0

他在wpf.codeplex.com上的WPFToolkit项目没有“MaskedTextbox”类。你使用什么“WPF工具包”?请编辑该问题以澄清此问题。 – 2010-06-15 22:42:48

+0

对不起,你是对的。我使用的是Matt MacDonald在Apress的书中“C#2008中的临WPF”中指定的MaskedTextbox控件。 – Rod 2010-06-18 16:37:24

回答

1

我还没有看到文本框的来源,但碰到类似的东西我自己。

  • 难道这是你的部分输入的文本或者不匹配掩码或者不匹配转换器的问题吗?
  • 绑定上的UpdateSourceTrigger是否设置为UpdateProperty,或者在代码隐藏中发生了类似的情况?
+0

我问了一个微软的技术人员,你是对的,它确实与部分输入的文本不匹配掩码有关。 但是,您使用UpdateProperty描述的UpdateSourceTrigger是什么? (我对WPF来说还不是很了解它的所有内容。) – Rod 2010-07-06 14:27:25

+0

UpdateSourceTrigger是一个值,您可以设置该值来告诉文本框何时更新绑定到的源。通常它只会在焦点移动到同一组中的另一个元素时更新源代码(如果因为丢失了文本而点击了不同的选项卡,真的很烦人)。将它设置为UpdateProperty意味着只要文本中的文本发生更改,它就会更新源代码文本框。 – Lunivore 2010-07-07 08:45:19