WPF的ListBox的ItemsSource已经绑定到某个数据集时,如何在代码中取得或设置选定项的某个列的值?

解决方案 »

  1.   

    ListBox的IsSynchronizedWithCurrentItem="True"CollectionView cv = (CollectionView)CollectionViewSource.GetDefaultView(listBox1.DataContext);
    System.Data.DataRow row = ((System.Data.DataRowView)cv.CurrentItem).Row;row["绑定的字段名"]即ListBox当前项的值。不知道还有没有其他方法。
      

  2.   

    ListBox.SelectedItem 
    ListBox.SelectedItems
    可以取得选定的对象
    或通过SelectedValue 和SelectedValuePath 的组合完成
    例如
    <XmlDataProvider x:Key="Employees" XPath="/Employees/*">
      <x:XData>
        <Employees xmlns="">
          <Employee Name="Terry Adams" Type="FTE" EmployeeNumber="1" />
          <Employee Name="Claire O&apos;Donnell" Type="FTE" EmployeeNumber="12345" />
          <Employee Name="Palle Peterson" Type="FTE" EmployeeNumber="5678" />
          <Employee Name="Amy E. Alberts" Type="CSG" EmployeeNumber="99222" />
          <Employee Name="Stefan Hesse" Type="Vendor" EmployeeNumber="-" />
        </Employees>
      </x:XData>
    </XmlDataProvider><DataTemplate x:Key="EmployeeItemTemplate">
      <TextBlock Text="{Binding XPath=@Name}" />
    </DataTemplate>
    ...
    <ListBox Name="employeeListBox"
             ItemsSource="{Binding Source={StaticResource Employees}}"
             ItemTemplate="{StaticResource EmployeeItemTemplate}"
             SelectedValue="12345"
             SelectedValuePath="@EmployeeNumber"/><TextBlock Text="{Binding ElementName=employeeListBox, 
                      Path=SelectedValue}"/>