【问题标题】:WPF, TextBox.Text bind to TimeSpan type propertyWPF,TextBox.Text 绑定到 TimeSpan 类型属性
【发布时间】:2014-10-14 21:00:54
【问题描述】:

有 TextBox.Text,它绑定到 Nullable TimeSpan 属性。当尝试向 TextBox 输入类型值时,文本输入发生意外。

代码:

<TextBox Grid.Column="0" Grid.Row="0" Width="120" Margin="60,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Left"
                         IsEnabled="{Binding ElementName=ForCv,Path=IsChecked, UpdateSourceTrigger=PropertyChanged}"
                         Text="{Binding Path=TimeFrom, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

我想在掩码“00:00:00”上输入,但我不知道它是如何工作的。此 TextBox 的掩码未定义,它在绑定或 TimeSpan 类型内的某处定义(例如根据 ToString() 返回值方法)。请帮忙。

附:对不起我的英语。

【问题讨论】:

  • 检查扩展 WPF 工具包的MaskedTextBox
  • 我会试试的。谢谢。
  • MaskedTextBox 完美解决问题。但是出现了新问题:在添加 xctk:MaskedTextBox 设计器后说:“找不到类型 'xctk:MaskedTextBox'。验证您没有丢失程序集引用并且所有引用的程序集都已构建。”存在对 Xceed.Wpf.Toolkit 的引用,并且 xmnls 已添加到 xaml。组装成功地构建和控制工作,但设计师没有显示。
  • 检查 this 链接。它可能会帮助你
  • 问题已成功解决。谢谢你,dkozl。

标签: wpf binding textbox mask timespan


【解决方案1】:

您可以在绑定中设置 StringFormat 属性。

 <TextBlock Text="{Binding TimeFrom, StringFormat=hh\\:mm\\:ss}" ...></TextBlock>

编辑:

对于文本框this link 可能会对您有所帮助。

【讨论】:

  • 谢谢你,苏克拉姆。但是打字还是出人意料。可能需要编码类,它派生自 TextBox 并在 TextChanged 处理程序中查找键入的值。我没有看到解决这个问题的其他方法。
  • 很抱歉没有注意到您使用了文本框。我添加一个链接也许会对你有所帮助。
猜你喜欢
  • 1970-01-01
  • 2014-12-08
  • 2012-07-20
  • 1970-01-01
  • 2020-01-08
  • 1970-01-01
  • 2021-11-08
  • 2011-01-20
  • 2015-10-15
相关资源
最近更新 更多