Hello Boyan,
Thank you for your reply. Yesterday I implemented a workaround for such issue. Here is a code:
private
static
int
GetColumnIndex(
this
RadGridView radGridView,
string
columnText)
{
var i = 0;
var specificSearch =
false
;
float
leftBorder = 0;
float
rightBorder = 0;
if
(columnText.Contains(@
"\"
))
{
var searchedText = columnText.Split(
new
char
[] {
'\\'
});
var commonHeaderPresenter = radGridView.FindElement(xamlTag:
"CommonHeaderPresenter"
);
var commonColumnHeaders = commonHeaderPresenter.FindElements(xamlTag:
"CommonColumnHeader"
, textContent: searchedText[0]);
if
(commonColumnHeaders.Count == 0)
throw
new
Exception(
"..."
);
specificSearch =
true
;
leftBorder = commonColumnHeaders[0].GetRectangle().X;
rightBorder = commonColumnHeaders[0].GetRectangle().X + commonColumnHeaders[0].GetRectangle().Width;
columnText = searchedText[1];
}
foreach
(var headerCell
in
radGridView.HeaderRow.HeaderCells)
{
if
(headerCell.Text.Equals(columnText))
{
if
(!specificSearch)
return
radGridView.HeaderRow.HeaderCells.Count - 1 - i;
var middleLine = (headerCell.GetRectangle().Width/2) + headerCell.GetRectangle().X;
if
(middleLine > leftBorder && middleLine < rightBorder)
return
radGridView.HeaderRow.HeaderCells.Count - 1 - i;
}
i++;
}
return
-1;
}
I decided to identify the column and its group based on the screen coordinates of the elements. It works perfectly.
Thank you.
Kind Regards,
Stanislav Hordiyenko