Silverlightで奇妙な問題に直面しましたDataGrid
。構造体のリスト(に配置ViewModel
)をグリッド値にバインドすると、正しく表示されますが、何らかの理由で、グリッドに加えられた変更はに反映されませんViewModel
。
public struct ObjectSelection
{
public bool Selected { get; set; }
public string Name { get; set; }
}
public List<ObjectSelection> SelectedObjects
{
get { return _selectedObjects; }
set
{
if (value != _selectedObjects)
{
_selectedObjects= value;
FirePropertyChanged("SelectedObjects");
}
}
}
XAML:
<navigation:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding SelectedObjects, Mode=TwoWay}"
<navigation:DataGrid.Columns>
<navigation:DataGridFilterTemplateColumn Header="Selected"
CanUserFilter="True"
CanUserSort="False"
DataType="Boolean"
SortMemberPath="Include">
<navigation:DataGridFilterTemplateColumn.CellTemplate>
<DataTemplate>
<controls:CheckBox HorizontalAlignment="Center"
VerticalAlignment="Center"
IsChecked="{Binding Selected, Mode=TwoWay}"/>
</DataTemplate>
</navigation:DataGridFilterTemplateColumn.CellTemplate>
</navigation:DataGridFilterTemplateColumn>
<navigation:DataGridFilterColumn Header="Dimension"
DataType="String"
CanUserFilter="False"
IsReadOnly="True"
Binding="{Binding Name}"
CanUserSort="True"
SortMemberPath="Name"
Width="*"/>
</navigation:DataGrid.Columns>
</navigation:DataGrid>