我从Syncfusion找到了一个DatGrid控件,并将其设置为:
<syncfusion:SfDataGrid x:Name="PasswdVw" Grid.Row="2"
Grid.Column="2" Grid.RowSpan="2" ItemsSource="{Binding PassWrd}" SelectedRow="{Binding SelPassRws, Mode=TwoWay}"
GridLinesVisibility="Both" SelectionMode ="Multiple"
NavigationMode="Row" HeaderRowHeight="35"
MaximumWidthRequest="1400" Margin="20,0,0,0"
CellLongPress="PasswdVw_CellLongPress">
我想做的是只在某个列被点击时运行代码。所以在后面的代码中,我有这个:
private void PasswdVw_CellLongPress(object sender, DataGridCellLongPressEventArgs e)
{
if(e.RowColumnIndex != 3)
{
return;
}
// continue with code here.
}
但是我总是在e.RowColumnIndex
行得到错误消息,它说:
那么,如何使用我单击的相应列号或MappingName
呢?
2条答案
按热度按时间vsikbqxv1#
根据documentation,
DataGridCellLongPressEventArgs
类的RowColumnIndex
属性是同名的RowColumnIndex
类,它包含两个整数字段:RowIndex
和ColumnIndex
,每个都是System.Int32
(或int
)类型。因此,您不能将
RowColumnIndex
与整数进行比较,而只能将其成员与其他整数进行比较,例如:ghhaqwfi2#
根据您提供的信息,您遇到的问题似乎与TypeConversion有关。您似乎试图将RowColumnIndex或DataGridColumn转换为整数值。
您可以选择从RowColumnIndex结构中提取RowIndex或ColumnIndex。或者,可以从DataGridCellLongPressEventArgs获取DataGridColumn。使用DataGridColumn,然后可以访问MappingName。请参考UG链接以获取更多信息。
UG链接-https://help.syncfusion.com/maui/datagrid/selection?cs-save-lang=1&cs-lang=csharp#celllongpress-event
代码片段: