Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么wpf UpdateSourceTrigger无法工作_C#_Wpf_Xaml_Updatesourcetrigger - Fatal编程技术网

C# 为什么wpf UpdateSourceTrigger无法工作

C# 为什么wpf UpdateSourceTrigger无法工作,c#,wpf,xaml,updatesourcetrigger,C#,Wpf,Xaml,Updatesourcetrigger,为什么简单的代码会在每次按键时复制“源”文本,而不是在lostFocus上 <StackPanel> <TextBox Text="{Binding Text, ElementName=source, UpdateSourceTrigger=LostFocus}"/> <TextBox x:Name="source"/> </StackPanel> 这相当简单。每当绑定目标元素失去焦点时,带有LostFocus的UpdateSo

为什么简单的代码会在每次按键时复制“源”文本,而不是在lostFocus上

<StackPanel>
    <TextBox Text="{Binding Text, ElementName=source, UpdateSourceTrigger=LostFocus}"/>
    <TextBox x:Name="source"/>
</StackPanel>


这相当简单。每当绑定目标元素失去焦点时,带有LostFocus的UpdateSourceTracger都会更新绑定源。这不是双向的。正如预期的那样,绑定以正确的方式工作

您的代码说明如下:

第一个文本框绑定到它下面的文本框控件。因此,第一个文本框的文本将根据第二个文本框的文本值进行更改

答案是: lostfocus是在更改第一个文本框时出现的。 当您更改第二个文本框时,由于它被第一个文本框绑定,它会在第一个文本框上自动更新

编辑: 我已运行该代码: 如果更改第一个文本框,只有当您失去焦点时,另一个文本框才会更改。
如果更改第二个属性,第一个属性将自动更改,正如我预期的那样

UpdateSourceTrigger将从其绑定到的文本框中启动,而不是从属性中启动。因为无论源属性何时更新,目标属性(source.Text)都会在每次按键时更新。