我有一个Infragistics网格,其中一个单元格具有以下EditorStyle(通过静态资源设置):
<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。输入第一个字符后,光标将被设置回单元格的开头,使第一个字母最后。如何解决这个问题?
答案 0 :(得分:0)
我认为您应该在TextChangedHandler
的末尾调用e.Handled = true;