Windows应用商店应用 - 动态绑定

时间:2015-06-19 14:42:50

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

需要第二组眼睛。我用文本框,复选框等动态填充集线器控件......当我这样做时,我在添加数据绑定时为每个控件添加数据绑定。问题是在加载事件之后所做的任何更改都没有正确注册。基本上根本没有注册。我的对象实现了iNotifyPropertyChanged。以下是一些希望能更好地解释这种情况的片段。

动态控件创建和数据绑定

  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));
    }

我错过了什么?始终欣赏反馈

1 个答案:

答案 0 :(得分: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);