这样的事情是否存在(例如存在UpdateSourceTrigger)还是有可能的?我只想在需要时更新目标。一次性绑定(bind)不起作用,因为我不希望它一次更新-我想在需要时更新它,而不是在绑定(bind)对象发生更改时更新。

所以我的问题很简单:如何在源更改时不更改目标,而在调用某些内容时更改目标?

谢谢

最佳答案

您可以做的另一件事是使用附加行为,该行为会挂接到与绑定(bind)没有直接关系的某些事件中。下面是一些工作代码的框架,仅供您引用。

internal class ContactcControlPropertySetter : Behavior<ContentControl>
{
    protected override void OnAttached() {
        base.OnAttached();
        if (AssociatedObject == null)
            throw new InvalidOperationException("AssociatedObject must not be null");

        AssociatedObject.DataContextChanged += OnDataContextChanged;
        CultureManager.UICultureChanged += OnCultureChanged;
    }

    protected override void OnDetaching() {
        AssociatedObject.DataContextChanged -= OnDataContextChanged;
        CultureManager.UICultureChanged -= OnCultureChanged;
    }

    private void OnCultureChanged(object sender, EventArgs e) {
        SetProperties();
    }

    private void SetProperties()
    {
        ...
        var tooltipFmt = _resourceManager.GetString(key, culture);
        ...
        AssociatedObject.ToolTip = tooltip;
        ...
    }

09-25 20:37