2016-08-13 5 views
0

1つのテキストボックスを持つWPFフォームを作成したとします。私はそのフォームを別のwpfウィンドウのグリッドパネルの中で呼び出しています。そして、テキストボックスの中に値を入力した後、submitボタンをクリックしています。ボタンをクリックした後、私はその値を取得し、現在のクラス内の文字列形式で保存する必要があります。私の論理はこういうものです。私の現在のウィンドウ内から取得するための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をチェックしてください、それはnullです。 価値を与えずにobjにアクセスすることはできません。 –

答えて

0

ValidationFormクラスの文字列sが割り当てられていないために問題が発生しています。 XSave_Click()メソッドが呼び出されていない可能性があります。

値を取得する前に、値をsに正しく割り当てるようにしてください。

+0

ええ、それは本当です。コンテキストメニューを右クリックしてselectedClickメソッドを呼び出すと、フォームがロードされるはずですが、フォームをロードせず、コントロールを詳細function.iに渡すだけで、エラーを見つけることができません。プロセスグリッド。 –

+0

ValidateFormユーザーコントロールをユーザーに表示し、入力を期待していますか? – ViVi

+0

'ウィンドウウィンドウ=新しいウィンドウ { タイトル=" ValidationForm "、 コンテンツ=新しいValidationForm() }; window.ShowDialog(); ' – ViVi

関連する問題