我需要在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
,如果這可能有所幫助。