gpt4 book ai didi

wpf - 不会为 XML 元素触发 TextBox ConvertBack 事件

转载 作者:行者123 更新时间:2023-12-04 19:03:39 28 4
gpt4 key购买 nike

ValueFormattingConverter.Convert 使用 XmlElement 调用。 ConvertBack 永远不会被调用。为什么?是否有义务将具有约束力的指令向下传递到链中? TextBox 的使用是否覆盖了它自己的绑定(bind)设置?可以做什么?

我的文本框

<TextBox Width="200" 
Text="{Binding Path=., Converter={StaticResource valueFormattingConverter}}",
Mode=TwoWay,
NotifyOnSourceUpdated=True,
NotifyOnValidationError=True,
UpdateSourceTrigger=PropertyChanged}" />

用法相当复杂。从顶部开始,我们为选项卡提供了一个 XML 元素。

<TabItem.DataContext>
<Binding Source="{StaticResource mcf}",
XPath="mdf/press_information"/>
</TabItem.DataContext>

该选项卡包含一个 ItemsControl,它通过传递绑定(bind)的 ControlChooser 构建 TextBoxes。

<ItemsControl.ItemTemplate>
<DataTemplate>
<W3V:ControlChooser RelativeSource="{RelativeSource AncestorType=W3V:ObjectList}",
Content="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>

我的转换器类标题。转换方法被调用。 ConvertBack 从不。

  [ValueConversion(typeof(XmlElement), typeof(string))]
public class ValueFormattingConverter : IValueConverter

编辑:选择的答案基本上是 Path=。不支持双向绑定(bind)。我相信这是问题的正确答案。知道很有帮助,但“不能那样做”并不能解决更大的问题。所以我在这里提出了更大的问题:Means of generating an editable form from XML .

最佳答案

到源的绑定(bind)方向不适用于{Binding Path=.}。这是因为没有绑定(bind)属性,只有绑定(bind)源对象。

因此永远不会有源更新,并且永远不会调用 ConvertBack 方法,因为那意味着替换源对象。

为了使您的代码正常工作,您必须绑定(bind)到某些属性:

<TextBox Text="{Binding Path=SomeElement, ...}"/>

关于wpf - 不会为 XML 元素触发 TextBox ConvertBack 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30987019/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com