- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我已经创建并将在这个问题中引用的文件是:
TechnicainSelectionView.xaml
TechnicianSelectionView.cs
TechnicianSelectionViewModel.cs
Technician.cs (Code First Entity)
我的 TechnicanSelectionView.xaml 中有以下 xaml
<UserControl xmlns etc... here"
d:DesignHeight="48" d:DesignWidth="300">
<Grid>
<StackPanel>
<Label Content="Select a Technican to run the test" FontWeight="Bold"></Label>
<ComboBox ItemsSource="{Binding Technicians, Mode=TwoWay}"></ComboBox>
</StackPanel>
</Grid>
</UserControl>
ItemSource 设置为绑定(bind)到的 Technicians 属性声明它由于未知的 DataContext 无法解析 Technicians。
因此,如果我们查看我的 TechnicianSelectionView.cs 代码隐藏...
public partial class TechnicianSelectionView : UserControl
{
public TechnicianSelectionViewModel ViewModel { get; private set; }
public TechnicianSelectionView()
{
InitializeComponent();
Technician.GenerateSeedData();
ViewModel = new TechnicianSelectionViewModel();
DataContext = ViewModel;
}
}
...我们看到我正在将 View 的 DataContext 设置为我的 TechnicianSelectionViewModel ...
public class TechnicianSelectionViewModel : ViewModelBase
{
public ObservableCollection<Technician> Technicians { get; set; }
public TechnicianSelectionViewModel()
{
Technicians = new ObservableCollection<Technician>();
}
public bool IsLoaded { get; private set; }
public void LoadTechnicians()
{
List<Technician> technicians;
using (var db = new TestContext())
{
var query = from tech in db.Technicians
select tech;
foreach (var technician in query)
{
Technicians.Add(technician);
}
}
IsLoaded = true;
}
}
Techicians 是我的 ViewModel 上的一个属性...
既然已经为 View 设置了 DataContext,为什么它不能将 ViewModel 上的 Technicians 解析为它要绑定(bind)到的 DataContext/属性?
根据下面评论中的问题。这是一个设计时问题,而不是编译时问题。我应该在一开始就指出这一点。
最佳答案
您需要在 xaml 中指定数据上下文的类型以获得设计时支持。即使您在代码隐藏中分配了数据上下文,设计者也不会识别它。
尝试将以下内容放入您的 xaml 中:
d:DataContext="{d:DesignInstance vm:TechnicianSelectionViewModel}"
参见 this link了解更多详情。
关于c# - 我需要什么来进一步限定 DataContext 以进行绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101696/
我有这个: const {ops} = getOplogStreamInterpreter(strm); ops.del.subscribe(v => { console.log('delete
我四处搜索,据我所知,POST 表单请求已被限制为 10MB (http://golang.org/src/net/http/request.go#L721)。 如果我要在我的 ServeHTTP 方
我是一名优秀的程序员,十分优秀!