循环复杂" ItemsControl

时间:2015-06-09 09:37:15

标签: wpf xaml itemscontrol

我有以下"元素":

public class ReportElementViewModel
{
    public string Name
    {
        get { return _name; }
        set
        {
            if (_name != value)
            {
                _name = value;
                RaisePropertyChanged("Name");
            }
        }
    }

    public bool IsChecked
    {
        get { return _isChecked; }
        set
        {
            if (_isChecked != value)
            {
                _isChecked = value;
                RaisePropertyChanged("IsChecked");
            }
        }
    }
}

我的ViewModel包含许多ReportElementViewModel:

public abstract class ReportViewModel<TPrimaryModel> : SharedViewModel
    where TPrimaryModel : Model, new()
{       
    public ObservableCollection<ReportElementViewModel> ReportElementViewModels
    {
        get { return _reportElementViewModels; }
        set
        {
            if (_reportElementViewModels != value)
            {
                _reportElementViewModels = value;
                RaisePropertyChanged("ReportElementViewModels");
            }
        }
    }
}

我删除了成员以降低代码复杂性,但它们已正确实现。

在我看来,我希望通过显示NameIsChecked(复选框)来显示所有ReportElementViewModel。

我认为ItemsControl是正确的&#34;工具&#34;但是它不起作用(没有显示):

<ItemsControl ItemsSource="{Binding ReportElemetViewModels}" Height="auto" VerticalAlignment="Top" Grid.Row="1">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <CheckBox Content="{Binding Name}" IsChecked="{Binding IsChecked}" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="269"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

1 个答案:

答案 0 :(得分:1)

您在Binding中犯了拼写错误。

ItemsSource="{Binding ReportElemetViewModels}"

应该是:

ItemsSource="{Binding ReportElementViewModels}"