2016-08-01 43 views
0

這是我的項目的XAML片段:
獲得通過代碼從XAML綁定的ElementName

<TextBox x:Name="txt_Time1" LostFocus="TextBox_LoseFocus"> 
    <TextBox.Text> 
    <Binding Converter="{StaticResource timezoneconverter}" 
    ElementName="cmb_TZ1" Path="SelectedValue"/> 
    </TextBox.Text> 
</TextBox> 

在我的代碼在這裏:

 private void TextBox_LoseFocus(object Sender, EventArgs e) 
     { 
     var txtBox = Sender as TextBox; 

我的問題是:是否有可能通過代碼獲取此TextBox的ElementName?

編輯:添加到此問題,以使其四捨五入。
這怎麼能在MultiBinding方案中完成?

<TextBox x:Name="txt_Time1" LostFocus="TextBox_LostFocus" > 
      <TextBox.Text> 
       <MultiBinding Converter="{StaticResource timezoneconverter}"> 
       <Binding ElementName="cmb_TZ1" Path="SelectedValue"/> 
       <Binding RelativeSource="{RelativeSource Self}" Path="Text"/> 
       </MultiBinding> 
      </TextBox.Text> 
     </TextBox> 

回答

0

對於檢索元素名稱以純綁定:

BindingExpression bindingExpression = 
    txtBox.GetBindingExpression(TextBox.TextProperty); 
    Binding parentBinding = bindingExpression.ParentBinding; 
    String elementName = parentBinding.ElementName; 

在多綁定方案:

MultiBindingExpression multiBindingExpression = BindingOperations.GetMultiBindingExpression(txtBox, TextBox.TextProperty); 
Binding parentBinding = ((BindingExpression)multiBindingExpression.BindingExpressions[0]).ParentBinding; 
String elementName = parentBinding.ElementName; 
2

BindingOperations.GetBinding(...)會給你Binding,並ElementNameBinding類的屬性。

1

BindingExpression bindingExpression = textBox1.GetBindingExpression(TextBox.TextProperty); 綁定parentBinding = bindingExpression.ParentBinding;

+0

任何想法,這可怎麼在MultiBinding方案中完成? –

+0

對於多重綁定,您可以使用以下代碼: 'MultiBinding bindingExpression = BindingOperations.GetMultiBinding(txtSample,TextBox.TextProperty); 收藏 parentBinding = bindingExpression.Bindings;' –

1

你可以做到這一點,

private void txt_Time_LostFocus(object sender, RoutedEventArgs e) 
     { 
      var txtBox = sender as TextBox; 
      Binding myBinding = BindingOperations.GetBinding(txt_Time, TextBox.TextProperty); 
      var elementName = myBinding.ElementName; 
     } 
相關問題