gpt4 book ai didi

c# - NotifySourceUpdated & Binding.SourceUpdated 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:50 25 4
gpt4 key购买 nike

我下面的事件 (OnSourceUpdated) 没有得到处理。

XAML:

    <StackPanel x:Name="MyStackPanel" 
Orientation="Horizontal"
DockPanel.Dock="Top">
<TextBox Text="{Binding Side, Mode=TwoWay}"
Width="100"/>
<TextBlock Background="Yellow"
Text="{Binding Side, Mode=OneWay,
NotifyOnSourceUpdated=True}"
Width="100"
SourceUpdated="OnSourceUpdated"
Binding.SourceUpdated="OnSourceUpdated"/>
</StackPanel>

C#:

....
MyStackPanel.DataContext = new MyItemClass() { Side = "Test" };
....

private void OnSourceUpdated(Object sender, DataTransferEventArgs args)
{
var i = args.Property;
}

public class MyItemClass : INotifyPropertyChanged
{
private string _side;
public string Side
{
get { return _side; }

set
{
_side = value;
OnPropertyChanged("Side");
}
}

#region INotifyPropertyChanged Members

public event PropertyChangedEventHandler PropertyChanged;

private void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}

#endregion
}

我已完成所有相关设置,如 NotifyOnSourceUpdated & SourceUpdated & Binding.SourceUpdated

最佳答案

来自 msdn : Binding.SourceUpdated 附加事件在值从绑定(bind)目标传输到绑定(bind)源时发生,但仅适用于 NotifyOnSourceUpdated 值设置为 true 的绑定(bind)

在TextBlock的Binding中,没有从绑定(bind)目标(TextBlock.Text)到绑定(bind)源(Side)的值传递。因此无法触发 SourceUpdated。

相反,SourceUpdated 可以在第一次绑定(bind)时触发。实际上这里的目标绑定(bind) TextBox.Text 可以改变绑定(bind)源(Side)。

关于c# - NotifySourceUpdated & Binding.SourceUpdated 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13024924/

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