2010-05-20 89 views
3

我想将Label的内容绑定到的SelectedItemwpf datagrid当前项目绑定

我认为'当前项目'绑定表达式可以工作,但事实并非如此。

我的XAML代码和代码隐藏C#是象下面这样:

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="512" Width="847"> 
    <DockPanel LastChildFill="True"> 
     <Label Content="{Binding Data/colA}" DockPanel.Dock="Top" Height="30"/> 
     <DataGrid ItemsSource="{Binding Data}"></DataGrid> 
    </DockPanel> 
</Window> 

namespace WpfApplication2 
{ 
    public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 
      InitializeComponent(); 
      this.DataContext = new MyData(); 
     } 
    } 

    public class MyData 
    { 
     DataTable data; 
     public MyData() 
     { 
      data = new DataTable(); 
      data.Columns.Add("colA"); 
      data.Columns.Add("colB"); 
      data.Rows.Add("aa", 1); 
      data.Rows.Add("bb", 2); 
     } 
     public DataTable Data { get { return data; } } 
    } 
} 

的标签显示DataTable的第一个项目,当我选择在DataGrid其他项目不会改变。看来DataView目前的项目不会改变。 我应该怎么做才能将它绑定到DataGrid的当前SelectedItem

回答

1

您的Label中的结合与Data结合,而与DataGridData的结合无关。尝试:

<Label Content="{Binding SelectedValue, ElementName=TheGrid}" /> 
<DataGrid x:Name="TheGrid" ItemsSource="{Binding Data}" /> 
2

试试这个

<Label Content = "{Binding ElementName = DataGridName, Path = SelectedItem}"/>