任何人都知道Caliburn或Caliburn Micro框架示例的良好代码示例,用于说明使用DataGrid项目的路由操作?
解决方法
此示例将操作附加到datagrid中的每一行.该操作在viewmodel上处理,viewmodel是整个视图的datacontext.这是用Micro构建的,但语法是一样的.这不使用基于约定的数据绑定.
该观点的相关部分是:
<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",new MyRow {Text = "A3",new MyRow {Text = "A4",new MyRow {Text = "A5",} ); } 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。