नहीं दिखाता है मुझे विंडोज 8 रिलीज पूर्वावलोकन (नवीनतम पैच स्थापित) का उपयोग करके, मेरे WinRT/C# XAML मेट्रो ऐप में एक अजीब समस्या है।कॉम्बोबॉक्स चयनित वैल्यू
<ComboBox SelectedValue="{Binding MySelectedValue, Mode=TwoWay}"
ItemsSource="{Binding MyItemsSource, Mode=OneWay}"
Width="200" Height="30" />
कोड के पीछे:: मैं एक ComboBox
, जिनके मान ItemsSource
और SelectedValue
एक ViewModel में संपत्तियों के लिए बाध्य कर रहे हैं का उपयोग कर रहा
public MainPage()
{
this.InitializeComponent();
DataContext = new TestViewModel();
}
और TestViewModel
की एक बहुत ही सरल परिभाषा, तार का उपयोग कर:
public class TestViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private IEnumerable<string> _myItemsSource = new List<string>
{
"Test Item 1",
"Test Item 2",
"Test Item 3"
};
public IEnumerable<string> MyItemsSource
{
get { return _myItemsSource; }
}
private string _mySelectedValue = "Test Item 2";
public string MySelectedValue
{
get { return _mySelectedValue; }
set
{
_mySelectedValue = value;
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("MySelectedValue"));
}
}
}
}
अब मैंने सोचा कि यह सरल समाधान सिर्फ काम करना चाहिए ... लेकिन जब मैं ऐप शुरू करता हूं, SelectedValue="Test Item 2"
दिखाई नहीं देता है, ComboBox
खाली छोड़ दिया गया है। ब्रेकपॉइंट्स सेट करके मैंने देखा कि MyItemsSource
और MySelectedValue
बाध्य मान दृश्य मॉडल से मूल रूप से पुनर्प्राप्त किए गए हैं जब मैं दृश्य के DataContext
सेट करता हूं। इस क्रिया के बाद, ComboBox.SelectedValue
संपत्ति वास्तव में "Test Item 2"
पर सेट है, लेकिन यह अभी प्रदर्शित नहीं होती है! साथ ही मैंने देखा कि जब मैं यूआई पर उपयोगकर्ता कार्रवाई द्वारा कॉम्बोबॉक्स में चयनित मान बदलता हूं, तो परिवर्तित मूल्य कॉम्बोबॉक्स में दिखाई देता है और व्यू मॉडल प्रॉपर्टी तदनुसार अपडेट की जाती है। तो MySelectedValue
के प्रारंभिक विज़ुअलाइजेशन को छोड़कर मॉडल प्रॉपर्टी को छोड़कर सबकुछ ठीक काम करता प्रतीत होता है। मैं इसके बारे में वास्तव में हताश हो रहा हूं ...
अब यह सबसे सरल उदाहरण है, मूल में मैं कॉम्बोबॉक्स में पूरी संस्थाओं को बांधना चाहता था, DisplayMemberPath
और SelectedValuePath
सेट करना चाहता था। दुर्भाग्य से, एक ही समस्या होती है।
क्या यह आपके लिए काम है ??? –
क्या समस्या तब बनी रहती है जब आप संग्रह से वास्तविक तत्व प्राप्त करते हैं, बजाय चयनित 'में एक नई स्ट्रिंग "निर्दिष्ट करने के बजाय,' चयनित वैल्यू = आइटम स्रोत [1] 'में? – Patrick