0

リストボックスに従業員名が表示されるDatable[ ]にバインドしたリストボックスがあります。employee

id選択したアイテムのようなものemployee_idをデータベースから取得するにはどうすればよいですか?

コードの場合、これが私の部分です

XAML-

ListBox ItemsSource="{Binding}" DisplayMemberPath="employee_name" HorizontalAlignment="Left" Margin="16.362,108.171,0,44.541" Name="lstbxEmloyee" Width="333.603" SelectionChanged="lstbxEmployee_SelectionChanged" 

.cs

EmployeeData _employeeData = new EmployeeData();

_employeeData.GetEmployeeName();

lstbxEmloyee.ItemsSource = _employeeData._dataTable.DefaultView;

リストボックスからemployee_id選択したものを取得したいemployee_name

私を助けてください

ありがとうございます....

4

2 に答える 2

0

はい、やりました。質問の解決策を見つけました。コードを次のように変更しました 。XAML- ListBox ItemsSource = "{Binding}" DisplayMemberPath = "employee_name" SelectedValuePath ="employee_id "衣服="Left" Margin = "16.362,108.171 、0,44.541 "Name =" lstbxEmloyee "Width =" 333.603 "SelectionChanged =" lstbxEmployee_SelectionChanged "

.cs string _selectedProject = lstbxProjects.SelectedItem.ToString();

これは、「SelectedValuePath」と「SelectedValue」の間のバインディングです。ここで、SelectedValuePathは、データテーブルSelectedValueのどの列を参照するかを示します。

于 2013-02-22T06:28:40.380 に答える
0

これを試すことができます:

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
         // you can bind your data as per your requirement
        lstbxEmloyee.ItemsSource = GetTable().DefaultView; 
    }

    private void lstbxEmloyee_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
      DataRow dr=((DataRowView) (lstbxEmloyee.SelectedItem)).Row;
      int Emp_id = Convert.ToInt32(dr["employee_ID"]);
      MessageBox.Show(Emp_id.ToString());
    }

    DataTable GetTable()
    {
        DataTable table = new DataTable();
        table.Columns.Add("employee_ID", typeof(int));
        table.Columns.Add("employee_name", typeof(string));        

        table.Rows.Add(1,"David");
        table.Rows.Add(2,"Sam");
        table.Rows.Add(3,"Christoff");
        table.Rows.Add(4, "Janet");
        table.Rows.Add(5, "Melanie");

        return table;
    }     
于 2013-02-21T08:43:47.680 に答える