Since v16 ItemChanged took over the functionality of ItemSearched.
Best-practice: Group your code by selecting the container (DataPanel, DataGrid), followed by the control from the container (TextBox, DataGrid Column).
public override void ItemChanged(UIElement container, FrameworkElement element, object selectedItem, object newValue, object oldValue)
{
base.ItemChanged(container, element, selectedItem, newValue, oldValue);
if (container == dpKopf) //DataPanel
{
if (element == tbsBetriebsauftrag) //TextBoxSearch
{
var babTyp = tbsBetriebsauftrag.ResultRow["typ"].ToInt(0);
var babNr = tbsBetriebsauftrag.ResultRow["nr"].ToInt(0);
if (babTyp > 0 && babNr > 0)
{
//Clearview, Retrieve and Set Focus
NewRueckmeldung(babTyp, babNr);
}
}
else if (element == tbsMitarbeiter)
{
var mitarbId = newValue.ToStringNN();
if (!mitarbId.IsNullOrEmpty())
{
ChangeMitarbeiter(mitarbId);
}
}
}
else if (container == dgZeit) //DataGrid
{
if (element.In(dgtbMenge, dgtbAusschuss)) //DataGrid Column
{
RefreshMenge();
}
else if (element == dgtbIstzeit)
{
RefreshRueckmRes();
RefreshEffektivZeit();
}
}
}
Example where in ItemChanged event we can access the searched row/rows via searchControl.ResultRow/ExtraRows:
The full implementation of this example can be found in PKP.