Silverlight DataForm + ChildWindows + MVVM:ComboBox DataField不会被填充

时间:2012-12-18 12:35:05

标签: mvvm silverlight-5.0

我有一个带有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。 显然我在这里遗漏了一些东西,但无法弄清楚是什么。 感谢

1 个答案:

答案 0 :(得分:0)

  

我最终将DataForm的User控件丢弃在一起   坚持使用通用控件的ChildWindows。似乎DataForm并不甜蜜   复杂情景