我正在创建一个显示所有员工的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);
}
}
任何人都可以提供帮助吗?
答案 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。