2012-10-19 128 views
3

希望從一個新手一個簡單的入門問題...複製從一個文本框,我綁定到另一個

有一個TextBox,其Text屬性綁定到一個視圖模型和的DependencyProperty。

當我點擊文本框時,我想爲第二個文本框('編輯器'文本框)分配與第一個相同的綁定。結果是編輯第二個「編輯器」文本框將更新第一個。

最終我希望能夠點擊任何文本框並在同一個「編輯器」文本框中進行編輯。


使用選項2 ...謝謝我的解決方案!!:

private void m_sourceTextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
    { 
     TextBox sourceTextBox = sender as TextBox; 
     if (null != sourceTextBox) 
     { 
      BindingExpression sourceBindExpression = sourceTextBox.GetBindingExpression(TextBox.TextProperty); 

      if (sourceBindExpression != null && sourceBindExpression.ParentBinding != null && sourceBindExpression.ParentBinding.Path != null) 
       m_editorTextBox.SetBinding(TextBox.TextProperty, sourceBindExpression.ParentBinding); 
     } 
    } 

回答

2

我能想到的這樣

前兩種方式,是有一個SelectedText你的財產您的EditorTextBox綁定的ViewModel,並在您單擊其他TextBoxes時設置此值。爲此,您可能需要類似AttachedCommandBehavior的東西,以便您可以將ViewModel中的命令附加到TextBox的ClickFocus事件中。

我能想到的另一種方式就是在代碼隱藏方面做到這一點。在每個文本框的ClickFocus事件中,獲取所選文本框的TextPropertyBindingExpression,並將綁定複製到EditorTextBox.Text

相關問題