绑定延迟属性WPF-I没有';我看不出有什么不同

绑定延迟属性WPF-I没有';我看不出有什么不同,wpf,binding,delay,Wpf,Binding,Delay,我试图更多地了解绑定延迟及其影响。我已经实现了一个简单的代码,但是,老实说,我最终没有注意到任何视觉上的差异,不管有没有延迟。代码如下: <Window x:Class="Example00.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Heig

我试图更多地了解绑定延迟及其影响。我已经实现了一个简单的代码,但是,老实说,我最终没有注意到任何视觉上的差异,不管有没有延迟。代码如下:

<Window x:Class="Example00.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Window1" Height="300" Width="300">

<Grid  >   
    <Grid.RowDefinitions >
        <RowDefinition Height="*" />
        <RowDefinition Height="*" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <TextBox Name="mySourceElement" Grid.Row="0" >Hello World</TextBox>
    <TextBlock Grid.Row="1">            
        <TextBlock.Text>
            <Binding ElementName="mySourceElement" Path="Text" Mode="TwoWay" Delay="60000" />
        </TextBlock.Text>
    </TextBlock> 

    <TextBlock Text="{Binding ElementName=mySourceElement, Mode=TwoWay, Path=Text, Delay=50000}" Grid.Row="2" />
</Grid>

你好,世界
它基本上是一个基于代码项目(示例零)教程的代码,但使用.NET4.5并添加了延迟。我添加了很长的延迟来直观地看到差异,但是我没有注意到与不使用延迟有什么不同


我想知道我是否误解了属性-其他文本框上的文本是否应该等待“延迟”量以反映用户在第一个文本框上键入的更改?

是的,您误解了
延迟。此属性的命名方式非常混乱。事实上,它只以一种方式工作,从目标到源。这意味着,当目标中发生每个更改时,更新到源的更改将被延迟。另一种方法不起作用,这意味着源中发生的每一个更改都不会延迟对目标的反射

所以在这种情况下应该是这样的:

<!-- NOTE: we name TextBlock as target but 
     in fact it's the source of the Binding -->
<TextBox Text="{Binding Text, ElementName=target, Mode=TwoWay, 
                UpdateSourceTrigger=PropertyChanged, Delay=1000}"
         ></TextBox>
<TextBlock Grid.Row="1" Name="target">            
</TextBlock> 


在代码中,
绑定的源代码为
TextBox
,目标代码为
TextBlock
。因此,
TextBox
中的每一个更改都会立即反映到
TextBlock
中,而不会受到
Delay
的影响。。。因此,如果我想延迟文本更新,我应该怎么做?我尝试了你发布的代码,但仍然没有延迟效果…@LeonardoAlvesMachado我在发布之前已经测试了代码,它在我这边有效,你应该仔细检查,如果你稍微修改了代码,确保你了解它是如何工作的,如果可能的话,更新你在问题中尝试过的内容,这样我就可以检查出什么可能是错误的。是的,你是对的。只有一个错误(编译时间),因为字段文本定义了多次。但是删除Hello World字符串使其工作。谢谢