2017-01-03 2 views
0

私のデータグリッドは、(独立して)必要なデータのユーザー選択に基づいて2つのテーブルのデータを表示するために使用されます。グリッドのItemsSourceとして現在使用されているテーブルの名前を取得するにはどうすればよいですか?WPF Datagrid ItemsSourceテーブルの名前を取得するにはどうすればいいですか

+0

もう少し説明できますか?あなたのXAMLとViewModelのビットを見ることができますか?ありがとう! – Floc

答えて

1

DataGridのItemsSourceプロパティがDataTableのDataViewに設定またはバインドされている場合、DataViewにキャストして、DataViewのTableプロパティのTableNameプロパティからテーブルの名前を取得することができます。

DataView dv = dg.ItemsSource as DataView; 
if(dv != null && dv.Table != null) 
{ 
    MessageBox.Show(dv.Table.TableName); 
} 

全サンプル:

MainWindow.xaml.cs:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     DataTable dt = new DataTable() { TableName = "t1" }; 
     dt.Columns.Add(new DataColumn("Name")); 
     dt.Rows.Add("Donald Duck"); 
     dg.ItemsSource = dt.DefaultView; 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     DataView dv = dg.ItemsSource as DataView; 
     if (dv != null && dv.Table != null) 
     { 
      MessageBox.Show(dv.Table.TableName); 
     } 
    } 
} 

MainWindow.xaml:

<DataGrid x:Name="dg" /> 
<Button Content="Get" Click="Button_Click" /> 
+0

それは私が必要としていたもので、IntelliSenseで見ることができましたが、キャストする方法がわからず、いくつか試してみましたが、近くにありましたが、あなたのコードは完璧に機能しました。 – user1500403

関連する問題