2015-06-09 110 views
0

對象我有以下的「元素」:循環「複雜」與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"); 
      } 
     } 
    } 
} 

我的視圖模型包含了許多ReportElementViewModels:

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(複選框)來顯示所有ReportElementViewModels。

我以爲ItemsControl的將是正確的「工具」,但它不工作(沒有顯示):

<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

您已經在Binding了一個拼寫錯誤。

ItemsSource="{Binding ReportElemetViewModels}" 

應該是:

ItemsSource="{Binding ReportElementViewModels}" 
+0

這是令人尷尬的。謝謝! – mosquito87

+0

沒問題! :-) –

+0

如果這解決了您的問題,請將其標記爲答案。 –