好的,我会让这很简单!这是viewmodels:
public class ObjectsModel
{
public event PropertyChangedEventHandler PropertyChanged = delegate { };
private string _objectName;
public string ObjectName
{
get
{
return _objectName;
}
set
{
if (value != _objectName)
{
_objectName = value;
PropertyChanged(this, new PropertyChangedEventArgs("ObjectName"));
}
}
}
public IEnumerable<Object> Objects {get;set;}
public ICommand AddCommand { get; private set; }
public ICommand SaveChangesCommand { get; private set; }
myDomainContext context = new myDomainContext();
public ObjectsModel()
{
objects = context.Objects;
context.Load(context.GetObjectsQuery());
}
}
public class InventoryModel
{
public event PropertyChangedEventHandler PropertyChanged = delegate { };
public IEnumerable<Inventory> Inventories {get;set;}
public ICommand AddCommand { get; private set; }
public ICommand SaveChangesCommand { get; private set; }
myDomainContext context = new myDomainContext();
public ObjectsModel()
{
objects = context.Objects;
context.Load(context.GetObjectsQuery());
}
}
所以我要做的是在我的第二种形式,我想为一个对象添加一个库存,我必须在一个组合框中选择对象。问题是,我如何填充我的组合框?在InventoryModel中创建“ObjectsModel”的另一个实例?或使用另一个“上下文”,我会查询另一个表?或者是否有更简单的Xaml方法?如果我不清楚,请告诉我我会放更多的例子/代码。
很多!
答案 0 :(得分:1)
您希望将组合框的内容绑定到ViewModel提供的项目列表,并将所选项目绑定到同一ViewModel上的另一个属性。
请养成将实际视图模型命名为“ViewModel”而不是“Model”的习惯,这样它们就不会与其他“真实”模型发生冲突。实际上看起来你直接绑定到你的商业模式而不是ViewModels(这不好)。