Syncfusion GridDataControl和DataContext问题

时间:2013-11-15 13:08:04

标签: wpf syncfusion

我需要在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

问题是((Button)sender).DataContext上的DataContext是JobNumber对象中的Cunit数据,但我无法获取父属性。我尝试了不同的铸造,但还没有得到任何东西。我已经使用过这种方法几次,但这是我第一次使用syncfusion进行此操作,它们帮助文件不包含任何内容。

我收到的发件人的DataContext类型为Syncfusion.Windows.Controls.Grid.GridDataCellBoundWrapper,如果这可能会有所帮助。

1 个答案:

答案 0 :(得分:0)

在使用Syncfusion来回传递消息之后,结果显示数据上下文实际上并不包含每个数据上下文。你需要几个强制转换和鼠标指针位置才能找到它。

相关问题