【问题标题】:Syncfusion GridDataControl and DataContext IssueSyncfusion GridDataControl 和 DataContext 问题
【发布时间】:2013-11-26 01:09:47
【问题描述】:

我需要在 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&lt;CProject&gt; 作为数据源的网格,然后当您选择其中一个时,CProject.UnitList // &lt;-- ObservableCollection&lt;CUnit&gt; 成为我正在使用的当前网格的数据源。因此网格中的每一行都是一个特定的CUnit

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

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

【问题讨论】:

    标签: wpf syncfusion


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多