我有一个带有 GridView 控件的视图页面。使用带有以下 xaml 的弹出子窗口编辑网格中的项目:
<toolkit:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<toolkit:DataField Label="Avisar a: ">
<ComboBox ItemsSource="{Binding Path=Sucursales}"/>
</toolkit:DataField>
<toolkit:DataField Label="Mensaje:">
<TextBox Text="{Binding mensaje, Mode=TwoWay}"/>
</toolkit:DataField>
<toolkit:DataField Label="Estado: ">
<ComboBox ItemsSource="{Binding Path=EstadosMensaje}"/>
</toolkit:DataField>
</StackPanel>
</DataTemplate>
</toolkit:DataForm.EditTemplate>
</toolkit:DataForm>
此弹出窗口的 DataContext 是从父视图注入的视图构造函数,如下所示:
AlertaForm frm = new AlertaForm(DataContext as AlertasViewModel);
frm.Show();
//ChildWindows constructor
public AlertaForm(AlertasViewModel viewModel){
InitializeComponent();
DataContext = viewModel;
}
如您所见,ChildWindows 和父视图共享同一个 ViewModel。问题是 ComboBox 控件没有被填充。TextBox 字段已正确绑定,它们显示来自 DataContext 属性的值,这令人困惑,因为这证明 DataForm 识别传递给 ChildWindows AlertaForm 的 ViewModel。显然我在这里遗漏了一些东西,但无法弄清楚是什么。谢谢