पर XAML में ViewModel को बाध्यकारी कॉन्टेक्स्ट सेट करें I Xamarin.Form और MVVM के साथ एक साधारण प्रोजेक्ट विकसित करना चाहते हैं। मेरे समाधान (नाम XamarinPOC) में (मानक Xamarin.Forms परियोजनाओं के अलावा) मॉडल के लिए एक अलग परियोजना (XamarinPOC.Model) और ViewModel (XamarinPOC.ViewModel) के लिए एक अलग परियोजना है।Xamarin.Forms
namespace XamarinPOC.ViewModel
{
public class SummaryViewModel : BaseViewModel
{
private string _test = "The binding is OK!";
public String test
{
get
{
return _test;
}
set
{
_test = value;
OnPropertyChanged("test");
}
}
public SummaryViewModel(){}
}
}
:
मैं एक BaseViewModel वर्ग के लिए एक अमूर्त वर्ग (कि INotifyPropertyChanged इंटरफ़ेस लागू करता है) और के बाद मैं एक SummaryViewModel वर्ग है कि एक साधारण संपत्ति के साथ BaseViewModel वर्ग का विस्तार बनाए जा चुके XamarinPOC.ViewModel परियोजना में परिभाषित किया गया
अगला मैंने XamarinPOC प्रोजेक्ट में एक साधारण ContentPage (SummatyView) बनाया है जिसमें केवल एक लेबल है जिसे मैं ViewModel में परिभाषित पाठ दिखाना चाहता हूं। मैं दृश्य और बाध्यकारी को परिभाषित करने के लिए एक एक्सएएमएल का उपयोग करना चाहता हूं लेकिन जब मैं ऐप चलाता हूं तो कुछ भी प्रदर्शित नहीं होता है, मुझे संकलन-समय और रनटाइम पर कोई त्रुटि नहीं होती है लेकिन पाठ प्रदर्शित नहीं होता है। मेरे XAML इस
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:XamarinPOC.ViewModel,assembly=XamarinPOC.ViewModel"
x:Class="XamarinPOC.Summary"
Title="Summary List"
BindingContext="XamarinPOC.ViewModel.SummaryViewModel">
<StackLayout>
<Label Text="{Binding test}"/>
</StackLayout>
</ContentPage>
और अंत में मेरी app.cs है:
namespace XamarinPOC
{
public class App : Application
{
public App()
{
MainPage = new Summary();
}
}
}
XamarinPOC परियोजना मैं XamarinPOC.ViewModel और XamarinPOC.Model विधानसभाओं के लिए एक संदर्भ में जोड़ दिया है।
मुझे लगता है कि समस्या बाध्यकारी की XAML परिभाषा में है, लेकिन मुझे त्रुटि नहीं मिली है। मैं कहाँ गलत हूँ?
आप BindingContext आवंटित करने के लिए अपने ViewModel की * एक * उदाहरण की जरूरत है, नहीं वर्ग परिभाषा ही – Jason