Reputation: 387
I have an usercontrol containing DataGrid (datagrid allow user edit on grid), but when i get collection data from datagrid through viewmodel property, but collection only get number of row but not get datagrid content.
View
<UserControl>
<Grid>
<DataGrid ItemsSource="{Binding}" SelectionUnit="CellOrRowHeader" CanUserAddRows="True" CanUserDeleteRows="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Day" Binding="{Binding Monday}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</UserControl>
ViewModel
public class RuleDetailViewModel : UserControlViewModelBase
{
ObservableCollection<RuleDetailExpViewModel> _ruleDetailList;
public RuleDetailViewModel()
{
_ruleDetailList = new ObservableCollection<RuleDetailExpViewModel>
{
new RuleDetailExpViewModel(),
new RuleDetailExpViewModel()
};
}
public ObservableCollection<RuleDetailExpViewModel> RuleDetailList
{
get { return _ruleDetailList; }
set
{
_ruleDetailList = ruleDetailList;
OnPropertyChanged("RuleDetailList");
}
}
}
I tried ItemsSource="{Binding RuleDetailList}" and ItemsSource="{Binding}" DataContext="{Binding RuleDetailList}" but unsucessfully.
How can i get data from view to viewmodel?
Sorry for my english
Upvotes: 0
Views: 1292
Reputation: 4002
change your view to
<UserControl>
<Grid>
<DataGrid ItemsSource="{Binding RuleDetailList}" SelectionUnit="CellOrRowHeader" CanUserAddRows="True" CanUserDeleteRows="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Day" Binding="{Binding Monday}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</UserControl>
and the RuleDetailExpViewModel
must contain the property Monday
Upvotes: 1