2012-04-23 67 views
0

這是我的問題獲取多個屬性從DataGrid中Selection_Change事件

我有一個DataGrid和這個他的源

var Query = from a in m.Table1 
         join p in m.Table2 
         on a.Value1 equals p.Value1 
         join c in m.Table3 on a.Value2 equals c.Value2 
      select new { 
         value1 = a.value1 
         value2 = p.value2 
         value3 = c.value3 
         value4 = a.value4 

         }; 
<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Left" Margin="84,75,0,0" 
Name="Grid_Exmple" Width="478" Height="219" VerticalAlignment="Top" SelectionChanged="Grid_Exmple_SelectionChanged"> 
        <DataGrid.Columns> 
         <DataGridTextColumn Binding="{Binding value1 }" Header="value1 " IsReadOnly="True" x:Name="dgrvalue1 " /> 
         <DataGridTextColumn Binding="{Binding value2 }" Header="value2 " IsReadOnly="True" x:Name="dgrvalue2 " /> 
         <DataGridTextColumn Binding="{Binding value3 }" Header="value3 " IsReadOnly="True" x:Name="dgrvalue3" /> 
         <DataGridTextColumn Binding="{Binding value4}" Header="value4" IsReadOnly="True" x:Name="dgrvalue4" /> 
        </DataGrid.Columns> 

當我們按下DataGrid上選擇事件

private void Grid_Exmple_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
    Here I try To Get The properties 

我可以看到e.AddedItems中的屬性,但我不能投它

((<>f__AnonymousType2<int,int?,decimal?,decimal?,string,string,string,int,string>)(((object[])(e.AddedItems))[0])).Value1 

    } 

回答

2

至少有兩種可能:

  1. 創建一個名爲類型,填補了網格,然後投回到這個類型。
  2. 投到dynamic並做任何你想做的事情。