0

我有一个包含 DataGrid 的用户控件(datagrid 允许用户在网格上编辑),但是当我通过 viewmodel 属性从 datagrid 获取集合数据时,但集合只获取行数但不获取 datagrid 内容。

看法

<UserControl>
    <Grid>
        <DataGrid ItemsSource="{Binding}" SelectionUnit="CellOrRowHeader" CanUserAddRows="True" CanUserDeleteRows="True">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Day" Binding="{Binding Monday}"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</UserControl>

视图模型

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");
        }
    }
}

我尝试了 ItemsSource="{Binding RuleDetailList}" 和 ItemsSource="{Binding}" DataContext="{Binding RuleDetailList}" 但没有成功。

如何从视图获取数据到视图模型?

对不起我的英语不好

4

1 回答 1

1

改变你的看法

<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>

并且RuleDetailExpViewModel必须包含该属性Monday

于 2012-08-19T16:59:04.877 回答