【问题标题】:Windows Store App - Dynamic BindingWindows 应用商店应用程序 - 动态绑定
【发布时间】:2015-09-05 14:31:38
【问题描述】:

需要第二双眼睛。我正在使用文本框、复选框等动态填充集线器控件...当我这样做时,我在添加每个控件时添加数据绑定。问题是在加载事件之后所做的任何更改都没有正确注册。基本不注册。我的对象实现了 iNotifyPropertyChanged。这里有一些 sn-ps,希望能更好地解释这个场景。

动态控件创建和数据绑定

  var b = new Binding
            {
                Mode = BindingMode.TwoWay,
                Source = detail.Answer
            };

            var txtBx = new TextBox() { Width = 260, Height = 18, Margin = new Thickness(0, 0, 0, 5) };
            txtBx.SetBinding(TextBox.TextProperty, b);

对象属性

   public string Answer
    {
        get
        {
            return _answer;
        }
        set
        {
            if (value == _answer) return;
            _answer = value;
            OnPropertyChanged(nameof(Answer));

        }
    }

财产变更方法

 [NotifyPropertyChangedInvocator]
    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }

我错过了什么?一如既往地感谢反馈

【问题讨论】:

  • 这个东西在吗?哈哈。我在问一些不常见的东西吗?考虑用不同的方法解决我的问题可能会更好。

标签: c# windows windows-store-apps winrt-xaml


【解决方案1】:

您需要设置绑定路径,我一直使用静态 SetBinding:

var binding = new Binding
        {
            Source = _sectionHeaderSlider,
            Mode = BindingMode.TwoWay,
            Path = new PropertyPath("Value"),
        };
        BindingOperations.SetBinding(ScrollTransform, Windows.UI.Xaml.Media.CompositeTransform.TranslateXProperty, binding);

【讨论】:

  • 谢谢丹妮。做到了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-11
  • 2012-11-01
  • 2023-03-14
相关资源
最近更新 更多