2013-11-15 34 views
0

我需要在GridDataControl中添加一個簡單的按鈕。注意到目前爲止。Syncfusion GridDataControl和DataContext問題

<syncfusion:GridDataVisibleColumn HeaderText="Open Unit" MappingName="JobNumber"> 
    <syncfusion:GridDataVisibleColumn.HeaderStyle> 
     <syncfusion:GridDataColumnStyle HorizontalAlignment="Center" /> 
    </syncfusion:GridDataVisibleColumn.HeaderStyle> 
    <syncfusion:GridDataVisibleColumn.CellItemTemplate> 
     <DataTemplate>           
      <Button HorizontalContentAlignment="Stretch" 
        VerticalContentAlignment="Stretch" 
        Name="cmdOpenUnit" 
        Click="cmdOpenUnit_Click" 
        Content="Open Unit" /> 
     </DataTemplate> 
    </syncfusion:GridDataVisibleColumn.CellItemTemplate> 
</syncfusion:GridDataVisibleColumn> 

現在我試過GridDataUnboundVisibleColumn但通過使用它,我不能因此使用映射的名字時,我去找DataContext,沒有任何。所以我用GridDataUnboundVisibleColumn並設置MappingName="JobNumber"於源的隨機數據只是爲了確保我有DataContext

Click事件:

private void cmdOpenUnit_Click(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     CUnit obj = ((Button)sender).DataContext as CUnit ; 
    } 
    catch { } 
} 

我有ObservableCollection<CProject>網格作爲數據源,然後,當你選擇一個CProject.UnitList // <-- ObservableCollection<CUnit>成爲我正在使用的正確網格的數據源。因此網格中的每一行都是特定的CUnit

問題是((Button)sender).DataContext上的DataContext是對象中的JobNumber數據,但我無法獲得父級屬性。我嘗試了不同的鑄造,但還沒有得到任何東西。我已經使用這種方法成功了一段時間,但這是我第一次使用syncfusion做這件事,他們幫助文件沒有包含任何內容。

我收到的發件人的DataContext的類型爲Syncfusion.Windows.Controls.Grid.GridDataCellBoundWrapper,如果這可能有所幫助。

回答

0

用Syncfusion來回發送消息後,數據上下文實際上並不包含每個說的數據上下文。你需要幾個投射和鼠標指針位置才能找到它。