2015-06-19 58 views
0

需要第二組眼睛。我用文本框,複選框等動態填充集線器控件......當我這樣做時,我將數據綁定添加到每個控件,因爲我添加它。問題是,加載事件後所做的任何更改都未正確註冊。基本上根本不註冊。我的對象實現了iNotifyPropertyChanged。這裏有一些片段希望更好地解釋場景。Windows應用商店應用 - 動態綁定

動態創建控件和數據綁定

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

我錯過了什麼?欣賞反饋一如既往

+0

是這件事情?大聲笑。我可以問一些不常見的東西嗎?對我的問題採取不同的方法可能會更好。 – CodeInColor

回答

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); 
+0

謝謝你Dani。那樣做了。 – CodeInColor