WPF-Frame导航到同一页面只能工作一次

时间:2014-06-19 07:04:16

标签: c# wpf xaml frame reload

在此页面中,您可以添加项目。现在你按" Save"添加另一个。下面是代码:

private void Btn_Save_Click(object sender, RoutedEventArgs e)
{
  // Adding the item to DB and List      
  MainData.MainDataItem MDI_Temp = new MainData.MainDataItem();

  MDI_Temp.Int_AF = Convert.ToInt32(Tb_AF.Text);
  MDI_Temp.Int_HO = Convert.ToInt32(Tb_HO.Text);
  MDI_Temp.Int_ST = Convert.ToInt32(Tb_ST.Text);
  MDI_Temp.Int_STD = Convert.ToInt32(Tb_STD.Text);
  MDI_Temp.Int_DIA = Convert.ToInt32(Tb_DIA.Text);
  MDI_Temp.Int_ECK = Convert.ToInt32(Tb_ECK.Text);
  MDI_Temp.Int_MID = ((HelperClasses.Main_VM)this.DataContext).MDO_TmpStore.Int_ID;
  MDI_Temp.Str_Bauteil = Str_Bauteil;
  MDI_Temp.Str_Defekt = Str_Defekt;
  MDI_Temp.Str_Massnahme = Str_Massnahme;
  MDI_Temp.Str_Feld = Tb_Feld.Text;
  MDI_Temp.Str_Zeile = Tb_Zeile.Text;
  MDI_Temp.Int_Pos = Convert.ToInt32(Tb_Pos.Text);

  HelperClasses.SQL_Class.DBAddItem(MDI_Temp);

  // Navigate
  HelperClass.Navigate("pages/New_Item.xaml");
}

这是helperclass中的空白:

public static void Navigate(string Str_Uri)
{
  ((MainWindow)Application.Current.Windows[0]).Fm_MainContainer.Source = new Uri(Str_Uri, UriKind.Relative);
}

第一次单击Btn_Save页面重新加载时,第二次onyl添加项目

1 个答案:

答案 0 :(得分:1)

另一种选择是在辅助类

中创建导航重载
public static void Navigate(object target)
{
  ((MainWindow)Application.Current.Windows[0]).Fm_MainContainer.Content = target;
}

使用这种方式

// Navigate
New_Item item = new New_Item();
HelperClass.Navigate(item);

这将确保每次都有一个新的初始化