के पीछे कोड से अपने व्यूमोडेल तक कैसे पहुंच सकता हूं, मुझे समझ में नहीं आता कि मैं एमवीवीएम क्लिक करने योग्य आयत बनाने के लिए कमांड कैसे बना सकता हूं। यहां मेरा कोड है:मैं
<Rectangle x:Name="Color01" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="10,29,0,0" Stroke="Black" VerticalAlignment="Top" Width="100" MouseDown="Color_MouseDown" />
<Rectangle x:Name="Color02" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="115,29,0,0" Stroke="Black" VerticalAlignment="Top" Width="100"/>
<Rectangle x:Name="Color03" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="220,29,0,0" Stroke="Black" VerticalAlignment="Top" Width="100"/>
<Rectangle x:Name="Color04" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="325,29,0,0" Stroke="Black" VerticalAlignment="Top" Width="100"/>
मेरे पहले आयत पर आप देख सकते हैं कि मैंने ईवेंट के पीछे एक कोड बनाया है। सबसे पहले मुझे नहीं पता कि कोड के पीछे से मेरे ViewModel तक कैसे पहुंचे। दो यह वास्तव में एमवीवीएम नहीं है।
public partial class MainWindow : Window
{
/// <summary>
/// Initializes a new instance of the MainWindow class.
/// </summary>
public MainWindow()
{
InitializeComponent();
Closing += (s, e) => ViewModelLocator.Cleanup();
}
private void Color_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
// So what ???
}
}
मैं बस जब कोई मेरे आयत पर क्लिक करें मेरी ViewModel में संग्रहीत एक सूची में संग्रहीत एक सरल बूलियन मान बदलने में सक्षम होने की जरूरत है। एमवीवीएम के साथ इतना जटिल क्यों है?
'वर रेक्ट = Rectangle' के रूप में इस और उसके बाद जो कुछ भी आप, यह करना चाहते हैं, हालांकि यह बहुत बुरा डिजाइन है और आप _should_ द्वारा हर तरह के डेटा का उपयोग बंधन और नहीं बल्कि ऐसा करने की तुलना में एक क्षेत्र के लिए रंग के लिए बाध्य करते हैं। उनसे लड़ने के बजाय दिए गए अवशेषों को जानें और उनका उपयोग करें। –
और मुझे आयताकार मिल गया ... तो अगला क्या है? प्रेषक प्राप्त करना समस्या नहीं है। उसके बाद मुझे अपने दृश्य मॉडल में संग्रहीत सूची में संग्रहीत मेरे बूलियन मान को अपडेट करने की आवश्यकता है। –