यह मेरे प्रोजेक्ट का 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>
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;
BindingOperations.GetBinding(...)
आपको Binding
देगा, और ElementName
Binding
वर्ग की संपत्ति है।
बाइंडिंग एक्सप्रेशन बाइंडिंग एक्सप्रेशन = टेक्स्टबॉक्स 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;
}
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।