我有一个使用 SQL CE 和实体框架设计的应用程序。是否有一种实用的方法可以在设计时将该数据提供给 Visual Studio Express 2012 for Desktop 中的数据绑定控件?
问问题
340 次
1 回答
1
假设您使用的是 MVVM 框架,例如 Caliburn.Micro,您可以像这样设置设计器数据上下文:
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:CaliburnDesignTimeData.ViewModels"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=vm:YourViewModel, IsDesignTimeCreatable=True}"
cal:Bind.AtDesignTime="True"
使用其他 MVVM 框架也有类似的方法可以做到这一点。
例子:
public class YourViewModel : PropertyChangedBase
{
public BindableCollection<Employee> Employees { get; set; }
public YourViewModel
{
Employees = new BindableCollection<Employee>();
if(Execute.InDesignMode)
{
// Add an employee when in design mode, this data will show up in design time
Employees.Add(new Employee
{
Name = "Sample Data Employee"
});
}
}
}
然后在 XAML 中绑定它(如果设计器数据上下文添加正确,VM 的属性甚至会显示在 Intellisense 中):
<Window
...
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:CaliburnDesignTimeData.ViewModels"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=vm:YourViewModel, IsDesignTimeCreatable=True}"
cal:Bind.AtDesignTime="True"
>
<Grid>
<DataGrid
AutoGenerateColumns="True"
ItemsSource="{Binding Employes}" />
</Grid>
</Window>
于 2013-05-31T16:31:25.780 回答