【问题标题】:Problem with validation and multibinding验证和多重绑定问题
【发布时间】:2011-03-04 09:19:33
【问题描述】:

在我的 WPF 应用程序中,我使用以下 xaml: ...

<TextBox
services:TextBoxService.IsFocused="{Binding Path=IsSelected, Mode=OneWay}"
FocusVisualStyle="{x:Null}">
    <MultiBinding
        Converter="{StaticResource mconv_operableToString}" 
        UpdateSourceTrigger="PropertyChanged">
            <Binding 
                Path="Value"
                Mode="TwoWay"
                NotifyOnValidationError="True" />
            <Binding 
                RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}" 
                Path="DataContext.Status"
                Mode="OneWay" />
     </MultiBinding>

第一个绑定使用的视图模型类实现 IDataErrorInfo 以进行验证。问题是,虽然错误在属性设置器中被捕获,但 UI 并没有注意到它。我有一个用错误模板定义的样式,当文本框中发生任何错误时应该应用该样式。我想也许这种情况在多重绑定中是不允许的,因为在我使用单一绑定的地方一切正常。

提前致谢。

【问题讨论】:

  • 你忘了&lt;Textbox.Text&gt; 包装你的多重绑定。
  • 是可选的,这就是我忽略它的原因。显示文本框中的值,所以这不是问题。

标签: wpf idataerrorinfo multibinding


【解决方案1】:

在我看来,没有人知道这个问题的答案,但我认为这种情况是行不通的。我会尽力回答它以防有人需要它。我试图将我的视图绑定到实现 IDataErrorInfo 的视图模型类,在 xaml 中我指定了一个转换器,虽然一切正常,但错误只是没有显示在 UI 上。因此,我从绑定中删除了转换器并在视图模型中实现了该逻辑,瞧,现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2021-10-10
    相关资源
    最近更新 更多