private void butNext_Click(object sender, RoutedEventArgs e) { //Do data transfer if finished if (tab1.SelectedIndex == tab1.Items.Count - 1) { if (!"DataTransferConfrimMsg".GetFromResourece().Confirm()) { return; } //Filter system table List <string> tableList = new List <string>(); listTablesList.SelectedItems.Cast <string>().ToList().ForEach(subItem => { tableList.Add(subItem); }); if (tableList.Count < 1) { "DataTransferNoTableMsg".GetFromResourece().Notify(); return; } DoExchangeData(srcHandler, targetHandler, tableList); return; } if (tab1.SelectedIndex == 2) { if (listTablesList.SelectedItems.Count == 0) { "DataTransferSelectTableMsg".GetFromResourece().Notify(); return; } } #region Generate the Handler Debug.WriteLine(((StackPanel)((TabItem)tab1.SelectedItem).Content).Children[0].GetType()); UIElement curElement = ((StackPanel)((TabItem)tab1.SelectedItem).Content).Children[0]; if (curElement.GetType().BaseType == typeof(UserControl)) { ISrcControl tempSrcControl = (ISrcControl)curElement; if (!tempSrcControl.X_CanForwardToNext) { tempSrcControl.X_ShowErrorTips(); return; } else { if (tempSrcControl.X_IsSourceHandler) { if ((srcHandler != null) && (srcHandler.IsOpened)) { srcHandler.Close(); } srcHandler = CreateHandler(curElement); if (!srcHandler.IsOpened) { "ErrorMsg_CannotConnectToSource".GetFromResourece().Warning(); return; } } else { if ((targetHandler != null) && (targetHandler.IsOpened)) { targetHandler.Close(); } targetHandler = CreateHandler(curElement); if (!targetHandler.IsOpened) { "ErrorMsg_CannotConnectToTarget".GetFromResourece().Warning(); return; } } } } #endregion tab1.SelectedIndex = 1 + tab1.SelectedIndex; //Select Source if (tab1.SelectedIndex == 1) { CurSrcDbType = ((DbTypeWrapper)cmbSrcDbType.SelectedItem).MyType; srcDbFileContainer.Children.Clear(); ISrcControl srcControl = SourceControlFactory.GetProcessingControl(CurSrcDbType, true); if (srcControl == null) { "DataTransfer_NotSupportDBType".GetFromResourece().Notify(); return; } srcDbFileContainer.Children.Add((UserControl)srcControl); } if (tab1.SelectedIndex == 2) { listTablesList.DataContext = null; List <string> t = srcHandler.GetTableListInDatabase(); t.Sort(); listTablesList.DataContext = t; } //Select Target Type if (tab1.SelectedIndex == 4) { CurTargetDbType = ((DbTypeWrapper)cmbTargetDbType.SelectedItem).MyType; targetDbFileContainer.Children.Clear(); ISrcControl targetControl = SourceControlFactory.GetProcessingControl(CurTargetDbType, false); if (targetControl == null) { "DataTransfer_NotSupportDBType".GetFromResourece().Notify(); return; } targetDbFileContainer.Children.Add((UserControl)targetControl); } //No next page if (tab1.SelectedIndex == tab1.Items.Count - 1) { resultSrcFile.Text = srcHandler.CurDatabase; resultTargetFile.Text = targetHandler.CurDatabase; butNext.Content = "Start"; } butBack.IsEnabled = true; }