Я использую Caliburn Micro в качестве основы MVVM в приложении WPF. У меня есть небольшая проблема, как установить все флажки в элементе управления сеткой данных. Каждый ряд данных имеет флажок.
Я связываюсь с типом свойства DataGrid List.
Модель:
public class Bill : INotifyPropertyChanged
{
public string CellPhoneNo
{
get { return _cellPhoneNo; }
set
{
_cellPhoneNo = value;
NotifyPropertyChanged("CellPhoneNo");
}
}
public bool IsSelected
{
get { return _isSelected; }
set
{
_isSelected = value;
NotifyPropertyChanged("IsSelected");
}
}
ViewModel:
public IList<Bill> TmobileBill
{
get
{
return _tmobileBill;
}
set
{
_tmobileBill = value;
NotifyOfPropertyChange(()=>TmobileBill);
}
}
Вид:
<Controls:DataGrid ItemsSource="{Binding Path= TmobileBill,
Mode=OneWay,
UpdateSourceTrigger=PropertyChanged}"
Style="{StaticResource FinalBillsView_CallsDataGrid}"
Grid.Row="0"
CanUserResizeRows="False">
<Controls:DataGrid.RowHeaderTemplate>
<DataTemplate>
<Grid>
<CheckBox IsChecked="{Binding Path=IsSelected, Mode=TwoWay,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Controls:DataGridRow}}}"/>
</Grid>
</DataTemplate>
</Controls:DataGrid.RowHeaderTemplate>
<Controls:DataGrid.Columns>
<Controls:DataGridTextColumn IsReadOnly="True"
CellStyle="{StaticResource FinalBillsView_DataGrid_CellStyle}"
Binding="{Binding Path=CellPhoneNo}"
HeaderStyle="{StaticResource FinalBillsView_DataGridColHeaderStyle}"
Header="Cell phone No"/>
</Controls:DataGrid.Columns>
</Controls:DataGrid>
В табличке данных для строки сетки данных я связываю свойство checbox со свойством IsChecked IsSelected из класса Bill.
<Controls:DataGrid.RowHeaderTemplate>
<DataTemplate>
<Grid>
<CheckBox IsChecked="{Binding Path=IsSelected, Mode=TwoWay,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type Controls:DataGridRow}}}"/>
</Grid>
</DataTemplate>
</Controls:DataGrid.RowHeaderTemplate>
Проблема в том, что я установил свойство IsSelected на true для всех элементов в списке.
foreach (var row in TmobileBill)
{
row.IsSelected = true;
}
Флажки в представлении не отмечены. В чем корень проблемы?
Спасибо.