2016-08-13 24 views
0

假設我創建了一個包含一個文本框的WPF表單。我在另一個wpf窗口的網格面板中調用該窗體,並在輸入文本框內的值後,點擊提交按鈕。點擊按鈕後,我需要獲取該值並將其以字符串形式保存在當前課程中。我的邏輯是這樣的。在WPF內的TextBox條目的基礎上添加XML節點表

對於從我的當前窗口內獲得: -

void SelectedClick(object sender, RoutedPropertyChangedEventArgs<object> e) 
{ 
    selectedItem.ContextMenu = VcontextMenu; 
    VcontextMenu.Items.Add(VmenuItem1); 
    VmenuItem1.Click += AddValidation; 
    details(); 
} 

void AddValidation(object sender, RoutedEventArgs e) 
{ 
    ValidationForm obj = new ValidationForm(); 
    ProcessGrid.Content = obj.VForm; 
} 

現在我想保存我的字符串內文本框的值。對於我已經使用以下代碼: -

public void details() 
    { 
     ValidationForm obj = new ValidationForm(); 
     string str = obj.s.ToString(); 
    } 

我ValidationForm代碼: -

public partial class ValidationForm : UserControl 
    { 
     public string s { get; set; } 
     public ValidationForm() 
     { 
      InitializeComponent(); 
     } 

     public void XSave_Click(object sender, RoutedEventArgs e) 
     { 
      s = TextValidationName.Text; 
     } 
    } 

而不是打開的形式,則控制將要obj.s.ToString()和表示錯誤作爲「對象引用未設置爲對象的實例」。請幫忙。謝謝。

+0

從哪裏調用'details()'函數?發佈'ValidationForm'代碼。 – ViVi

+0

我已經添加了我的ValidationForm代碼,我打電話來自selectedClick方法的詳細功能 –

+0

檢查你的obj,它是空的。 如果沒有提供價值,你無法到達obj。 –

回答

0

此問題是由於ValidationForm類中的字符串s未分配而引起的。這可能是由於沒有調用XSave_Click()方法引起的。

確保在嘗試從中獲取值之前,將值正確分配給s

+0

是的,這是真的。當我通過右鍵單擊上下文菜單調用selectedClick方法時,它應該加載表單,但它不加載窗體,只是將控件傳遞給細節function.i無法找到錯誤,爲什麼它不會加載窗體processgrid。 –

+0

您是否試圖向用戶顯示ValidateForm用戶控件並期待輸入? – ViVi

+0

'Window window = new Window { Title =「ValidationForm」, Content = new ValidationForm() }; window.ShowDialog();' – ViVi