MVVM 디자인 패턴과 함께 Silverlight 3.0 DataGrid를 사용하려고합니다. 내 페이지에는 DataGrid와 (Composite Application Library의) 명령을 사용하여 VM의 컬렉션에 항목을 추가하는 버튼이 있습니다. 이 잘 작동하고 새 항목이 표시되고 선택됩니다.MVVM을 사용하여 Silverlight 3 DataGrid에서 새로 추가 된 행 편집
해결할 수없는 문제는 행 편집을 시작하는 방법입니다. 사용자가 추가 버튼, 즉 포커스를 DataGrid로 설정하고 새 행을 편집 모드로 클릭하면 새 행을 바로 편집 할 수 있습니다.
이
뷰에서 XAML입니다 :<Grid x:Name="LayoutRoot">
<StackPanel>
<data:DataGrid ItemsSource="{Binding DataView}"/>
<Button cmd:Click.Command="{Binding AddItemCommand}" Content="Add" />
</StackPanel>
</Grid>
코드는 뒤에 VM의 인스턴스를 생성하고 뷰의 DataContext를을 설정하는 코드 한 줄이있다.
는 VM 코드는 다음과 같습니다
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 디자인 패턴을 사용하여이 문제를 해결하는 가장 좋은 방법이 있을까요?
정확합니다. MVVM을 사용하지 않으면이 문제를 쉽게 해결할 수 있습니다. 내 질문은 MVVM 패턴을 고수하면서 원하는 결과를 얻는 방법입니다. – bart