Перенос значений с помощью пользовательских элементов управления - PullRequest
0 голосов
/ 09 января 2012

У меня есть два пользовательских элемента управления с именем

  1. Добро пожаловать
  2. Данные

в одном главном окне

Во втором пользовательском контроле IЯ использую датагрид.При изменении элементов в сетке данных я должен иметь возможность установить значение в пользовательском элементе управления Welcome

В пользовательском элементе управления Welcome

<StackPanel Orientation="Horizontal">
    <Label Content="Name:" FontWeight="Bold" Name="lblClientName" />
    <TextBox Name="txtClientName" Width="85" 
      Background="Transparent" IsReadOnly="True"/>
</StackPanel>

В Dataпользовательский контроль

private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    // Here on change of this event i must be able to display 
    // data in textbox i.e.txtClientName
}

1 Ответ

0 голосов
/ 10 января 2012

Это что-то очень простое, просто нужно немного базовых знаний о .net framework .. Я надеюсь, что это может вам помочь. я только что создал пользовательское событие в Data usercontrol, которое будет всплыть событие строки.

Код пользовательского контроля данных:

 public partial class Data : UserControl
    {

        private event EventHandler _RowSelectionChanged;
        public event EventHandler RowSelectionChanged
        {
            add { _RowSelectionChanged += value; }
            remove { _RowSelectionChanged -= value; }
        }

        private void RaiseSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (_RowSelectionChanged != null)
                _RowSelectionChanged(sender, e);
        }
        public Data()
        {
            InitializeComponent();
        }

        private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            RaiseSelectionChanged(sender, e);
        }

    }

Добро пожаловать UserControl Code:

 public partial class Welcome : UserControl
    {
        public Welcome()
        {
            InitializeComponent();
        }

        public string ClientName
        {
            get 
            {
                return txtClientName.Text;
            }
            set
            {

                txtClientName.Text = value;

            }
        }
    }

Класс главного окна:

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
        }

        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            ucData.RowSelectionChanged += new EventHandler(ucData_RowSelectionChanged);
        }

        void ucData_RowSelectionChanged(object sender, EventArgs e)
        {
            var ev = e as SelectionChangedEventArgs;
            var grid = sender as DataGrid;
            ucWelcome.ClientName = "any thing";
            //this is how you can change Welcome UserControl
        }
    }

Привет.

...