我有一个UserControl(MVVM模式)和一个MainWindow。 UserControl模型获取所有数据并保留它,现在我想从MainWindow访问这些数据并将其绑定到Control。
但是怎么样?
修改
UserControl.cs:
public UserControl()
{
InitializeComponent();
DataContext = new ViewModel.UserControlViewModel(
new Model.UserControlModel(this.facade));
}
ViewModel.cs(来自UserControl.cs)
public string Status
{
get { return _model.Status; }
set
{
if (value == _model.Status)
{
return;
}
_model.Status = value;
base.NotifyPropertyChanged();
}
}
MainWindow.xaml
<StatusBarItem Grid.Column="1">
<TextBlock x:Name="txtStatus" Text="{Binding Path=???,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" />
</StatusBarItem>
所以它不那么容易(可能只为我;))为此设置DataContext
答案 0 :(得分:0)
你可以创建一个MainWindowViewModel来保存这样的数据:
public class MainWindowViewModel {
public AllDataType AllData {get;set;}
}
现在您将MainWindows DataContext
绑定到此ViewModel并访问数据:
<MainWindow>
<ctrl:UserControl DataContext="{Binding AllData}"/>
<AnotherControl DataContext="{Binding AllData}"/>
</MainWindow>