Silverlight中,卡利,操作和DataGrid中

问题描述:

任何人都知道那说明与数据网格项目路由操作的卡利或卡利Micro Framework的例子很好的代码示例?Silverlight中,卡利,操作和DataGrid中

+0

你应该标记答案,为社区的其他人提供反馈。 – RyBolt 2010-10-18 16:22:24

+0

刚刚做到了。谢谢。 – BuddyJoe 2010-10-22 02:44:20

此示例附着到在数据网格的每一行的动作。该操作在作为整个视图的datacontext的视图模型上处理。这是建立在微型,但语法是相同的。这不使用基于约定的数据绑定。

视图的相关部分是:

<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> 

和相应的视图模型看起来是这样的:

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