Wpf 关于文本框的问题
我有两个绑定到同一属性的文本框。一个文本框用于原始文本,第二个文本框用于新文本。我遇到的问题是,当第一个文本框的文本被提交时,它返回原始文本。但是当我输入第二个文本框来更新名称时,这会自动覆盖第一个文本框中的内容。我只是想知道是否有任何方法可以阻止它,这样我就可以显示原始文本和新文本Wpf 关于文本框的问题,wpf,data-binding,Wpf,Data Binding,我有两个绑定到同一属性的文本框。一个文本框用于原始文本,第二个文本框用于新文本。我遇到的问题是,当第一个文本框的文本被提交时,它返回原始文本。但是当我输入第二个文本框来更新名称时,这会自动覆盖第一个文本框中的内容。我只是想知道是否有任何方法可以阻止它,这样我就可以显示原始文本和新文本 <TextBox Name="txtOriginalName" HorizontalAlignment="Right" VerticalAlignment="Top"
<TextBox Name="txtOriginalName"
HorizontalAlignment="Right" VerticalAlignment="Top"
Width="524" Height="auto" TextWrapping="Wrap"
AcceptsReturn="True" HorizontalScrollBarVisibility="Auto"
Text="{Binding Path=Person.Name}"/>
<TextBox Name="txtNewName"
HorizontalAlignment="Right" VerticalAlignment="Top"
Width="524" Height="auto" TextWrapping="Wrap" AcceptsReturn="True"
HorizontalScrollBarVisibility="Auto"
Text="{Binding Path=Person.Name}"/>
尝试Text=“{Binding Path=Person.Name,Mode=OneTime}”
对于txtOriginalName,则txtOriginalName将初始化为Person.Name中的值,但在Person.Name稍后更改时不会更新
下面是一个有用的绑定理想情况下,您有一个PersonViewModel,它具有单独的OriginalName和NewName属性,并带有一些触发条件,用于确定基础Person.Name的更新时间。如果某些名称条目无效,这还允许您放置UI级验证逻辑(以及相关的反馈)。从本质上讲,您将更新名称(使用新/原始名称的概念)的过程与包含名称的过程分离。前者可能处于名称正在更改的状态,而后者只是有一个名称。否,仅适用于只想绑定一次的名称(“原始”名称)