【发布时间】: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<CProject> 作为数据源的网格,然后当您选择其中一个时,CProject.UnitList // <-- ObservableCollection<CUnit> 成为我正在使用的当前网格的数据源。因此网格中的每一行都是一个特定的CUnit。
问题是((Button)sender).DataContext 上的DataContext 是Cunit 对象中的JobNumber 数据,但我无法获取父属性。我尝试了不同的铸造,但还没有得到任何东西。我已经成功使用过这种方法几次,但这是我第一次使用 syncfusion 进行此操作,他们的帮助文件对此一无所知。
我收到的发件人的 DataContext 类型为 Syncfusion.Windows.Controls.Grid.GridDataCellBoundWrapper,如果这可能有帮助的话。
【问题讨论】:
标签: wpf syncfusion