2010-05-04 15 views
12

के पीछे कोड में नियंत्रण बाध्य है, मैं उस संपत्ति को पाने का एक तरीका ढूंढने की कोशिश कर रहा हूं जिस पर नियंत्रण बाध्य है (सी # में)।डब्ल्यूपीएफ: संपत्ति प्राप्त करें कि

अगर मैं निम्नलिखित है:

<dxe:ComboBoxEdit DisplayMember="Name" ItemsSource="{Binding Path=NameOptions, Mode=OneTime}" SelectedItem="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" /> 

मैं अब स्थान जो करने के लिए SelectedItem के लिए बाध्य है, यानि कि परिणाम प्राप्त करने के होना चाहिए "नाम" कोशिश कर रहा हूँ। फिर कोड में मुझे उस व्यूमोडेल प्रॉपर्टी के साथ कुछ सामान करने की ज़रूरत है। समस्या यह है कि मैं केवल इतना कठिन कोड नहीं कर सकता क्योंकि यह एक सामान्य विधि है जिसे फ़ॉर्म पर प्रत्येक नियंत्रण के साथ काम करने की आवश्यकता है।

धन्यवाद, रिचर्ड

उत्तर

16

मुझे लगता है कि यह यह करना चाहिए:

BindingExpression be = BindingOperations.GetBindingExpression((FrameworkElement)yourComboBox, ((DependencyProperty)Button.SelectedItemProperty)); 
string Name = be.ParentBinding.Path.Path; 

To give credit where it's due.

+0

सहायता के लिए धन्यवाद! पूरी तरह से काम किया। – Richard

+0

इस प्रश्न का लिंक अब काम नहीं करता है, बस एक सिर ऊपर। –

2

BindingExpression

आईई का उपयोग में एक नज़र:

var bindingExpression = this.myComboBox.GetBindingExpression(ComboBox.SelectedItem); 
string bindingPath = bindingExpression.ParentBinding.Path.Path 

मुझे लगता है कि आप एक मानक के बजाय एक DXE कॉम्बोबॉक्स का उपयोग कर रहे हैं - उम्मीद है कि यह सामान्य .NET नियंत्रण ऑब्जेक्ट से प्राप्त होता है, आपको अभी भी यह कार्यक्षमता होनी चाहिए।

+0

उत्तर के लिए धन्यवाद, दोनों दृष्टिकोणों की कोशिश की और दोनों काम किया। और dxe कॉम्बोबॉक्स पर ठीक काम करता है। धन्यवाद। – Richard

संबंधित मुद्दे