1

У меня есть пользовательский элемент управления с сеткой данных внутри него, которую я повторно использую в нескольких разных Странах и использую M-V-VM.Публикация DataGrid SelectedItem в родительском UserControl в WPF

Как я могу/можно ли вывести свойство зависимостей SelectedItem Data Grid в качестве свойства зависимостей в User Control, который содержит его ???

Цель состоит в том, чтобы на странице с помощью элемента управления я мог привязать выбранный элемент сетки к свойству модели представления страницы. Я не очень хочу изменить SelectedItem из модели представления, в основном, имея текущее значение для выполнения некоторой работы.

ответ

1

Если ваша цель заключается в том, чтобы ваша модель просмотра была осведомлена о выбранном элементе, вы могли бы просто использовать свойство ItemContainerStyle. приведенный ниже пример привяжет свойство IsSelected строки к свойству IsSelected в элементе, отображаемом строкой. Таким образом, ваша модель представления может иметь выбранное свойство для каждого элемента в связанной коллекции, и они могли бы указать модель родительского представления, которая была выбрана и т. Д. Это будет работать, только если у вас есть SelectionUnit = «FullRow», иначе ваш блок выбора является ячейкой , в этом случае вы помещаете стиль в ячейку для выбора.

<dg:DataGrid 
    ItemsSource="{Binding Path=YourItems}" 
    SelectionUnit="FullRow"> 

    <dg:DataGrid.ItemContainerStyle> 
    <Style 
     TargetType="{x:Type dg:DataGridRow}"> 
     <Setter 
     Property="IsSelected" 
     Value="{Binding IsSelected, Mode=TwoWay}" /> 
    </Style> 
    </dg:DataGrid.ItemContainerStyle> 

, если его только ваша модель представления, что нужно знать о выбранном элементе можно обойти необходимость другого свойства зависимостей таким образом.

Смежные вопросы