GridView中的编辑项不起作用

时间:2013-05-02 06:03:22

标签: c# xaml gridview windows-8

我正在创建一个显示所有员工的GridView,我可以选择其中一个员工,然后单击编辑按钮以指向编辑页面,所选员工的所有属性都绑定到TextBox 或{ {1}}。更改属性后,单击“保存”按钮返回ComboBox页面。但是,GridView中的员工信息没有改变。我的员工类已经实现了GridView接口,GridView的ItemsSource是INotifyPorpertyChanged

编辑页面中控件的绑定模式是TwoWay绑定。

在我的MainPage构造函数中,代码如下:

ObservableCollection

这是编辑按钮点击事件处理程序:

public MainPage()
    {
        this.InitializeComponent();
        MyGridView.ItemsSource = Employees;  
    }

这是“保存”按钮单击事件处理程序:

private void Button_Click(object sender, RoutedEventArgs e)
    {
        emp= MyGridView.SelectedItem as Employee;
        if (emp!= null)
        {
            Frame.Navigate(typeof(EditPage), emp);
        }
    }

任何人都可以提供帮助吗?

3 个答案:

答案 0 :(得分:0)

您是否检查过更改的信息是否已到达相应的属性?

如果是这样:获取事件被解雇?附加了事件处理程序吗?

了Christoph

答案 1 :(得分:0)

您似乎遇到 Page.IsPostback 的问题,在Page_Load事件上使用 Page.IsPostback 页面属性就像

protected void Page_Load(object sender, EventArgs e)
    {
      if (!Page.IsPostBack)
      {
       // Put your code here..
      }
    }

您的价值会发生变化,但当您的网页再次加载时,它会获得旧值,因为我认为您的Page_Load.Use ISPostback属性页面中没有 Page.IsPostback ,您的问题就会得到解决。有关更多知识,请查看MSDN Document

希望它有效。

答案 2 :(得分:0)

要注意两件事: - 确保当您保存在编辑页面时,信息存储在精确存储(db等...)中 - 当您导航回MainPage时,您将填充视图模型并加载您保存的最新信息。

然而,在窗口8中,当你在公共文件夹中内置了BindableBase.cs类时,为什么要选择INotifyPorpertyChanged。