我有一个带有GridView控件的View页面。使用带有以下xaml的弹出式Childwindows编辑网格中的项目:
<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。 显然我在这里遗漏了一些东西,但无法弄清楚是什么。 感谢
答案 0 :(得分:0)
我最终将DataForm的User控件丢弃在一起 坚持使用通用控件的ChildWindows。似乎DataForm并不甜蜜 复杂情景