<TreeView x:Name="treeview1" ItemsSource="{Binding TreeData}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding NodeName}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
public class TreeNode
{
public string NodeID { get; set; }
public string NodeName { get; set; }
public List<TreeNode> Children { get; set; }
}
posted @ 2012-02-10 15:10 Ken-Cai 阅读(2) 评论(0)
编辑
<ListBox ItemsSource="{Binding Provinces}" DisplayMemberPath="ProvinceName"/>
ListBox其实有一个默认的ItemTemplate,它以一个Content控件来显示DisplayMemberPath定义的字段的内容,我们可以自定义ItemTemplate让ListBox显示更多的内容,注意ItemTemplate与DisplayMemberPath不能同时定义
<ListBox ItemsSource="{Binding Provinces}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ProvinceName}"/>
<TextBlock Margin="5,0,2,0" Text="省会:"/>
<TextBlock Text="{Binding Capital}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Datagrid 的分组绑定:
<UserControl.Resources>
<CollectionViewSource x:Key="ProductsGroup" Source="{Binding Products}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="ProductDate" />
</CollectionViewSource.GroupDescriptions>
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="ProductDate" Direction="Descending" />
<scm:SortDescription PropertyName="ID" Direction="Ascending" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</UserControl.Resources>
...
...
<sdk:DataGrid DataContext="{StaticResource ProductsGroup}" AutoGenerateColumns="False"
ItemsSource="{Binding}" SelectedItem="{Binding SelectedProduct}" Width="300" >
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Binding="{Binding ID}" Header="编号" />
<sdk:DataGridTextColumn Binding="{Binding Name}" Header="名称" />
<sdk:DataGridTextColumn Binding="{Binding Desc}" Header="说明" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
posted @ 2012-02-10 15:00 Ken-Cai 阅读(2) 评论(0)
编辑
<Button Content="按钮" Command="{Binding ButtonCommand}"/>
// 按钮点击命令
public ICommand ButtonCommand
{
get
{
return new RelayCommand(
() => System.Windows.MessageBox.Show("当前时间:" + System.DateTime.Now.ToString())
);
}
}
posted @ 2012-02-10 14:46 Ken-Cai 阅读(3) 评论(0)
编辑
一个 Silverlight 一般只有一个 ViewModelLocator 。
如果是通过MVVM 模板建立的项目,默认就有该文件了。
用到的Code Snape : mvvmlocatorproperty。
- App.Xaml,先添加ViewModel命名控件引用,然后为ViewModelLocator添加一个全局的资源
<Application.Resources>
<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
</Application.Resources>
private void Application_Exit(object sender, EventArgs e)
{
ViewModelLocator.Cleanup();
}
posted @ 2012-02-10 14:44 Ken-Cai 阅读(3) 评论(0)
编辑
在Visual Studio中,选择 工具 / 代码段管理器/ My Code Snippetss
找出My Code Snippetss 的路径。
将 Mvvm Light 代码段 的文件复制到 My Code Snippetss 中。
Mvvm Light 代码段 默认在
C:\Program Files\Laurent Bugnion (GalaSoft)\Mvvm Light Toolkit\Snippets\CSharp
posted @ 2012-02-10 11:30 Ken-Cai 阅读(1) 评论(0)
编辑
duanzilin的博客 http://blog.csdn.net/duanzilin/article/details/6387639
posted @ 2012-02-10 11:27 Ken-Cai 阅读(0) 评论(0)
编辑