我需要在 GridDataControl 中添加一个简单的按钮。注意复杂到目前为止。
<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
点击事件:
private void cmdOpenUnit_Click(object sender, RoutedEventArgs e)
{
try
{
CUnit obj = ((Button)sender).DataContext as CUnit ;
}
catch { }
}
我有一个ObservableCollection<CProject>
作为数据源的网格,然后当您选择一个时,它会CProject.UnitList // <-- ObservableCollection<CUnit>
成为我正在使用的当前网格的数据源。因此,网格中的每一行都是一个特定的CUnit
.
问题是 DataContext on((Button)sender).DataContext
是对象中的JobNumber
数据,Cunit
但我无法获取父属性。我尝试了不同的铸造,但还没有得到任何东西。我已经成功使用过这种方法几次,但这是我第一次使用 syncfusion 这样做,他们的帮助文件对此一无所知。
Syncfusion.Windows.Controls.Grid.GridDataCellBoundWrapper
如果可能有帮助,我收到的 Sender 的 DataContext 是类型。