В Silverlight: Как программно заполнить сетку данных Silverlight для элементов управления Silverlight? - PullRequest
0 голосов
/ 21 мая 2011

привет Друзья Я работаю над Silverlight 4.0, у меня есть сетка данных, данные загружаются из базы данных. Мой вопрос - когда пользователь нажимает на запись в сетке данных.Записи автоматически заполняются в элементах управления silverlight

Пример в сетке данных У меня есть empid и empname, когда пользователь нажимает empid или empname для данных, загружаемых в empid (текстовое поле) и empname (текстовое поле).

Может ли кто-нибудь, пожалуйста, отправьте код ......

1 Ответ

0 голосов
/ 21 мая 2011

Если я вас понимаю, у вас есть что-то вроде "master / detail", AKA вы нажимаете на строку сетки данных и хотите заполнить пару текстовых полей.

Итак, когда вы нажимаете на строку, запускаетесобытие SelectionChanged, получите элемент, прикрепленный к этой строке (Employee), и назначьте его свойству SelectedEmployee.Текстовый текстовый текстовый текст - это SelectedEmployee.Свяжите каждое текстовое поле со свойством SelectedEmployee (empid, empname ...)

Это то, что вы хотите?:)

Вот пример:

<StackPanel>
    <sdk:DataGrid x:Name="datagrid" SelectionChanged="DataGrid_SelectionChanged">

    </sdk:DataGrid>
    <TextBox Text="{Binding SelectedEmployee.Id}" />
    <TextBox Text="{Binding SelectedEmployee.EmpName}" />
</StackPanel>

У меня есть DataGrid (имя, потому что я использую codebehind в этом примере).Сетка данных с данными и два текстовых поля, которые будут содержать данные выбранной строки в сетке данных.

    private ObservableCollection<Employee> employees;

    public MainPage()
    {
        InitializeComponent();
        employees = new ObservableCollection<Employee>();
        employees.Add(new Employee {Id = 1, EmpName = "Raj"});
        employees.Add(new Employee {Id = 2, EmpName = "Jesus"});
        datagrid.ItemsSource = Employees;

        Page.DataContext = this;
    }

    private Employee _selectedEmployee;


    public ObservableCollection<Employee> Employees
    {
        get { return employees; }
    }

    public Employee SelectedEmployee
    {
        get { return _selectedEmployee; }
        set
        {
            _selectedEmployee = value;
            RaisePropertyChanged("SelectedEmployee");
        }
    }

    private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        SelectedEmployee = datagrid.SelectedItem as Employee;
    }

Опять код за дерьмом, но идея такова.У вас есть ItemsSource, связанный с вашей DataGrid, и у вас есть свойство SelectedEmployee.

Итак, когда я щелкаю по строке, запускается событие SelectedChanged, и вы должны назначить Employee этой строке, поместив егок свойству SelectedEmployee и поскольку текстовые поля назначены этому свойству, вы увидите их заполненными.

Лучше сейчас?:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...