Передать выбранное значение в дочернее окно - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть сетка данных в родительском представлении.

Когда я выбираю элемент в сетке,

  1. Я хочу открыть дочернее окно

  2. и передать значение выбранного элемента в дочернее окно

  3. Мне нужно отправить изменения на основе выбранного значения.

Я пересматриваю следующий код, который представляет собой события щелчка, которые мне нужно перенести в дочернее окно.

Можно ли унаследовать источник данных домена от родительского представления?

    private void ApproveCmd_Click(object sender, RoutedEventArgs e)
    {
        PA_Request selReq =(PA_Request) this.onticPMA_RequestRadGridView.SelectedItem;
        if (selReq != null)
        {
            ((PA_Request)this.PA_RequestRadGridView.SelectedItem).STATUS = "Approved";

            this.PA_RequestDomainDataSource.SubmitChanges();



        }
    }

    private void DissaproveCmd_Click(object sender, RoutedEventArgs e)
    {
        PA_Request selReq = (PA_Request)this.PA_RequestRadGridView.SelectedItem;
        if (selReq != null)
        {
            ((PA_Request)this.PA_RequestRadGridView.SelectedItem).STATUS = "Disapproved";

            this.PA_RequestDomainDataSource.SubmitChanges();


        }
    }

    private void ApplyCmd_Click(object sender, RoutedEventArgs e)
    {
        PA_Request selReq = (PA_Request)this.PA_RequestRadGridView.SelectedItem;
        if (selReq != null)
        {
            ((PA_Request)this.PA_RequestRadGridView.SelectedItem).STATUS = "Applied";

            this.PA_RequestDomainDataSource.SubmitChanges();

        }

1 Ответ

0 голосов
/ 29 февраля 2012

Хорошо, предположим, что в сетке 10 элементов.Когда вы нажимаете на любой элемент, открывается событие, например ApproveCmd_Click.Вы должны сначала получить отправителя, как это.

private void ApproveCmd_Click(object sender, RoutedEventArgs e) 
{
  var senderListBox = sender as ListBox; (Or any type you want)
  var senderListBoxItem = senderListBox as senderListBoxItem;
  string data = senderListBoxItem.Content;
  //Now you have sender. 
  // Pass sender through constructor of the window
  //Say you need to pass a string Create 

  var chieldWindow = new ChieldWindow(data);
}

в окне защиты

class ChieldWindow :Window
{
   ChieldWindow(string input)
   {
      \\You got the data
   }
}

Позвольте мне знать

...