यह मेरे प्रोजेक्ट का XAML स्निपेट है:

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

मेरा प्रश्न है: क्या कोड के माध्यम से इस टेक्स्टबॉक्स का ElementName प्राप्त करना संभव है?

संपादित करें: इसे गोल करने के लिए इस प्रश्न को जोड़ने के लिए।
मल्टीबाइंडिंग परिदृश्य में यह कैसे किया जा सकता है?

 <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
Grace A 1 अगस्त 2016, 07:08

4 जवाब

सबसे बढ़िया उत्तर

प्लेन बाइंडिंग में एलिमेंट का नाम प्राप्त करने के लिए:

  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;
0
Grace A 1 अगस्त 2016, 09:51

BindingOperations.GetBinding(...) आपको Binding देगा, और ElementName Binding वर्ग की संपत्ति है।

2
AnjumSKhan 1 अगस्त 2016, 07:17

बाइंडिंग एक्सप्रेशन बाइंडिंग एक्सप्रेशन = टेक्स्टबॉक्स 1. गेट बाइंडिंग एक्सप्रेशन (टेक्स्टबॉक्स। टेक्स्टप्रॉपर्टी); बाइंडिंग पेरेंट बाइंडिंग = बाइंडिंग एक्सप्रेशन। पेरेंट बाइंडिंग;

1
Pratik Parikh 1 अगस्त 2016, 07:43

तुम यह केर सकते हो,

  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;
        }
1
Sajeetharan 1 अगस्त 2016, 07:47