0

我需要在 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 是类型。

4

1 回答 1

0

在与 Syncfusion 来回传递消息后,数据上下文实际上并不包含每个说的数据上下文。你需要几个演员和鼠标指针位置才能找到它。

于 2013-11-25T17:09:47.343 回答