मैं एक दिलचस्प मुद्दा है जिसके लिए मैं अभी तक कोई स्पष्टीकरण मिल गया है भर में आया है ...ViewModel सदस्यों की दृश्यता क्या होनी चाहिए?
बहुत सरल MVVM WPF नीचे आवेदन को देखते हुए, क्यों केवल तभी कॉम्बो बॉक्स के लिए बाध्य सूची है में उसकी दृश्यता ViewModel public
पर सेट है?
internal
पर दृश्यता को संकलित समय पर कोई त्रुटि या चेतावनी नहीं उठाती है लेकिन रन टाइम पर कॉम्बो बॉक्स खाली छोड़ देता है।
the official documentation उद्धरण internal
प्रकार या सदस्य केवल उसी असेंबली में फ़ाइलों के भीतर पहुंच योग्य हैं।
और यह समस्या इस तथ्य के बावजूद हो रही है कि व्यू और व्यूमोडेल को एक ही असेंबली में परिभाषित किया गया है।
यहाँ कैसे कोड लग रहा है जैसे:
मॉडल:
class TestModel
{
internal List<string> Musketeers { get; private set; }
public TestModel()
{
Musketeers = new List<string> { "Athos", "Porthos", "Aramis" };
}
}
दृश्य:
<Window x:Class="TestWpfApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ComboBox Width="250" Height="25" ItemsSource="{Binding TestList}" />
</Grid>
</Window>
ViewModel:
class TestViewModel : INotifyPropertyChanged
{
TestModel myModel = new TestModel();
public List<string> TestList
{
get
{
return myModel.Musketeers;
}
}
// INotifyPropertyChanged members are below ...
}
_ उसी विधानसभा में दृश्य और दृश्य मॉडल नहीं है? _ मैं इसका उत्तर नहीं दे सकता। आपने उन्हें कहां परिभाषित किया है? –
@ChrisDunaway ओह, तुम सही हो! मैंने अब अपना शब्द तय कर दिया है ... –