У меня есть следующий XAML:
<UserControl.Resources>
<local:MainPageViewModel x:Key="ViewModel" />
</UserControl.Resources>
<Grid x:Name="LayoutRoot"
DataContext="{Binding Source={StaticResource ViewModel}}">
<sdk:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Items}">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="ID" Binding="{Binding ID}" />
<sdk:DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<sdk:DataGridCheckBoxColumn
Header="Checkbox Column"
Binding="{Binding Source={StaticResource ViewModel},
Path=SomeBooleanProperty}"/>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
</Grid>
Итак, я хочу, чтобы один из столбцов (столбец флажка) был привязан к какому-либо свойству (SomeBooleanProperty), которое находится непосредственно в ViewModel, а недля свойства одного из элементов в коллекции Items.(Да, это немного надумано, но это решает мою проблему.) Проблема в том, что, основываясь на моем тестировании, если вы выполняете привязку через StaticResource, кажется, что значение не обновляется на основе запуска события INotifyPropertyChanged.Начальное значение правильное, но оно никогда не меняется.Я не могу найти другой способ, чтобы "выйти" из привязки Предметов и обратно в ViewModel из привязки столбца.
Я думаю, что в WPF вы могли бы сделать это с помощью RelativeBinding с использованием FindAncestor,Но эта функциональность не существует в Silverlight.Есть ли другие способы сделать это?