2010-10-14 30 views
7

कोई भी कैलिबर्न या कैलिबर्न माइक्रो फ्रेमवर्क उदाहरण के अच्छे कोड उदाहरणों के बारे में जानता है जो डेटाग्रिड आइटम्स के साथ रूटिंग एक्शन को चित्रित करते हैं?सिल्वरलाइट, कैलिबर्न, एक्शन और डेटाग्रिड्स

+0

आप चाहिए बाकी समुदाय के लिए प्रतिक्रिया प्रदान करने के लिए उत्तर को चिह्नित करें। – RyBolt

+0

बस किया। धन्यवाद। – BuddyJoe

उत्तर

11

यह उदाहरण डेटाग्रिड में प्रत्येक पंक्ति के लिए एक क्रिया को जोड़ता है। कार्रवाई को व्यूमोडेल पर संभाला जाता है जो संपूर्ण दृश्य के लिए डेटाकॉन्टेक्स्ट है। यह माइक्रो में बनाया गया था, लेकिन वाक्यविन्यास वही है। यह सम्मेलन-आधारित डेटा बाइंडिंग का उपयोग नहीं करता है।

देखने के संबंधित भाग है:

<sdk:DataGrid ItemsSource="{Binding Source}" 
       AutoGenerateColumns="False"> 
    <sdk:DataGrid.Columns> 
     <sdk:DataGridTemplateColumn Header="Action"> 
      <sdk:DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <Button Content="Do!" 
          cm:Message.Attach="Remove($dataContext)" /> 
       </DataTemplate> 
      </sdk:DataGridTemplateColumn.CellTemplate> 
     </sdk:DataGridTemplateColumn> 
     <sdk:DataGridTextColumn Binding="{Binding Text}" /> 
         <sdk:DataGridTextColumn Binding="{Binding More}" /> 
         <sdk:DataGridTextColumn Binding="{Binding Stuff}" /> 
    </sdk:DataGrid.Columns> 
</sdk:DataGrid> 

और इसी viewmodel इस तरह दिखता है:

public class ShellViewModel : IShell 
{ 
    public ShellViewModel() 
    { 
     Source = new ObservableCollection<MyRow>(
      new[] 
       { 
        new MyRow {Text = "A1", More = "B", Stuff = "C"}, 
        new MyRow {Text = "A2", More = "B", Stuff = "C"}, 
        new MyRow {Text = "A3", More = "B", Stuff = "C"}, 
        new MyRow {Text = "A4", More = "B", Stuff = "C"}, 
        new MyRow {Text = "A5", More = "B", Stuff = "C"}, 
       } 
      ); 
    } 

    public void Remove(MyRow row) 
    { 
     Source.Remove(row); 
    } 

    public ObservableCollection<MyRow> Source { get; set; } 
} 

public class MyRow 
{ 
    public string Text { get; set; } 
    public string More { get; set; } 
    public string Stuff { get; set; } 
} 

विशेष पैरामीटर $ DataContext यहाँ पर चर्चा की है: http://caliburn.codeplex.com/wikipage?title=Parameters&referringTitle=Documentation