У меня есть сетка Infragistics с ячейкой со следующим EditorStyle (устанавливаются с помощью статического ресурса):WPF TextChanged помещает курсор после первой буквы
<Style x:Key="ProgramName_EditorStyle" TargetType="{x:Type igEditors:XamTextEditor}">
<Setter Property="DataContext" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type igDP:CellValuePresenter}}, Path=DataContext}" />
<Setter Property="Text" Value="{Binding DataItem.Name, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />
<EventSetter Event="TextChanged" Handler="TextChangedHandler"/>
</Style>
Это код позади для TextChangedHandler:
void TextChangedHandler(object sender, RoutedPropertyChangedEventArgs<string> e)
{
var editor = sender as XamTextEditor;
if (editor == null)
return;
var record = editor.DataContext as DataRecord;
if (record == null)
return;
var list = record.DataPresenter.DataContext as MyProgramListViewModel;
if (list == null)
return;
var data = record.DataItem as MyProgramSummaryViewModel;
if (data == null)
return;
MyProgramSummaryViewModel toBeAdded = null;
if (data.ReinsuranceSummary == null)
toBeAdded =
MyProgramSummaryViewModel.Create(
new ProgramSummary { EnteredDate = DateTime.UtcNow, EditedDate = DateTime.UtcNow }, list);
if (toBeAdded != null)
{
data.Summary = toBeAdded.Summary;
data.Master = toBeAdded.Master;
}
data.Name = e.NewValue;
Debug.Print(e.NewValue);
}
Проблема возникает, когда я начинаю печатать в ячейке. Если я хочу войти в abc, я получаю bca. Случается, что после ввода первого символа курсор возвращается к началу ячейки, делая первую букву последней. Как это можно зафиксировать?
Неа. Это не работает. – laconicdev
Вы уверены, что текст не изменяется в коде? – csharpwinphonexaml
Да. Похоже, что существует конфликт между Я копаю больше в нем. –
laconicdev