我需要在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
,如果这可能会有所帮助。
答案 0 :(得分:0)
在使用Syncfusion来回传递消息之后,结果显示数据上下文实际上并不包含每个数据上下文。你需要几个强制转换和鼠标指针位置才能找到它。