Я использую Caliburn micro (1.3)/MVVM и Silverlight. Когда я обновляю источник RadGridView, я теряю выбранные элементы. Я нашел блог о реализации поведения для сохранения выбранных элементов при реализации MVVM. Я могу получить выбранные элементы, но я не могу установить их обратно, когда обновляется источник. Может ли кто-нибудь объяснить мне, как реализовать это, используя caliburn.micro и RadGridVIew? Я думаю, что лучший способ - создать микросхему caliburn, но я могу найти ссылку для создания соглашения для selectedItem, а не SelectedItems.Сохранить выбранные элементы при использовании caliburn.micro/Telerik RadGridView/Silverlight
Может ли кто-нибудь показать мне, как это сделать? Я попробовал следующее, но это не сработает.
private static void SetRadGridSelecteditemsConventions()
{
ConventionManager
.AddElementConvention<DataControl>(DataControl.ItemsSourceProperty, "SelectedItem", "SelectionChanged")
.ApplyBinding = (viewModelType, path, property, element, convention) =>
{
ConventionManager.SetBinding(viewModelType, path, property, element, convention, DataControl.ItemsSourceProperty);
if (ConventionManager.HasBinding(element, DataControl.SelectedItemProperty))
return true;
var index = path.LastIndexOf('.');
index = index == -1 ? 0 : index + 1;
var baseName = path.Substring(index);
foreach (var selectionPath in
from potentialName in ConventionManager.DerivePotentialSelectionNames(baseName)
where viewModelType.GetProperty(potentialName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance) != null
select path.Replace(baseName, potentialName))
{
var binding = new Binding(selectionPath) { Mode = BindingMode.TwoWay };
BindingOperations.SetBinding(element, DataControl.SelectedItemProperty, binding);
}
return true;
};
}
Спасибо, Stephane