Я пытаюсь использовать DataGrid Silverlight 3.0 с шаблоном проектирования MVVM. На моей странице есть DataGrid и кнопка, которая добавляет элемент в коллекцию на виртуальной машине с помощью команды (из библиотеки составных приложений). Это прекрасно работает, и новый элемент отображается и выбирается.
Проблема, которую я не могу решить, - это как начать редактирование строки. Я хочу, чтобы новая строка была немедленно редактируемой, когда пользователь нажимает кнопку «Добавить», т.е. фокус устанавливается на DataGrid, а новая строка в режиме редактирования.
Это XAML в представлении:
<Grid x:Name="LayoutRoot">
<StackPanel>
<data:DataGrid ItemsSource="{Binding DataView}"/>
<Button cmd:Click.Command="{Binding AddItemCommand}" Content="Add" />
</StackPanel>
</Grid>
Код позади имеет одну строку кода, которая создает экземпляр виртуальной машины и устанавливает DataContext представления.
Код виртуальной машины:
public class VM
{
public List<TestData> UnderlyingData { get; set; }
public PagedCollectionView DataView { get; set; }
public ICommand AddItemCommand { get; set; }
public VM()
{
AddItemCommand = new DelegateCommand<object>(o =>
{
DataView.AddNew();
});
UnderlyingData = new List<TestData>();
UnderlyingData.Add(new TestData() { Value = "Test" });
DataView = new PagedCollectionView(UnderlyingData);
}
}
public class TestData
{
public string Value { get; set; }
public TestData()
{
Value = "<new>";
}
public override string ToString()
{
return Value.ToString();
}
}
Как лучше всего решить эту проблему, используя шаблон проектирования MVVM?