我想将视图构造函数中的数据传递给视图模型 这是我的视图,它有一个IEnumerable类型参数
public SearchView(IEnumerable<ISearchable> enumerable)
{
InitializeComponent();
}
我希望在视图模型中使用相同的可枚举对象
public SearchViewModel()
{
SearchCommand = new RelayCommand(TestSearch);
}
我怎样才能实现这一点。任何帮助都会得到很高的评价。
答案 0 :(得分:0)
当您加载视图时,确实可以这样做。看看我的伪代码:
dependency property of type object objProperty = null;
private object tempObj;
public MyWindow(object param) : base()
{
tempObj = param;
// create one way to source Binding
Binding b = new Binding("DataContext.ViewModelProperty");
b.Source = this;
b.Mode = BindingMode.OneWayToSource;
this.SetBinding(b, objProperty);
// listen to DataContext changes
this.DataContextChanged += OnDataContextChanged
}
private void OnDataContextChanged(...)
{
// push data to ViewModel
this.SetCurrentValue(objProperty, tempObj);
}
这是允许从View到ViewModel的数据的方法。
每次DataContext或更好的表示ViewModel更改,您将通过绑定到源来推送您的值。