2013-03-07 67 views
0

我的列表視圖中不顯示綁定到它 askind求救數據我在這裏給爲例,用於顯示只有一個元素 我想知道哪裏是我的代碼 pleese問題幫我:(我的ListView不顯示我的數據

這裏是我的代碼:

<ListView ItemsSource="{Binding Path=MovieData}"> 
      <ListView.View> 
       <GridView> 
        <GridViewColumn DisplayMemberBinding="{Binding Path=MovieId}" Header="Movie Id" /> 
        <GridViewColumn DisplayMemberBinding="{Binding Path=Title}" Header="Title" /> 
        <!-- Can Bind to complex subclass --> 
        <GridViewColumn Header="Movie(s)"> 
         <GridViewColumn.CellTemplate> 
          <DataTemplate> 
           <StackPanel> 
            <ItemsControl ItemsSource="{Binding Path=MovieImage}"> 
             <ItemsControl.ItemsPanel> 
              <ItemsPanelTemplate> 
               <WrapPanel Orientation="Horizontal"/> 
              </ItemsPanelTemplate> 
             </ItemsControl.ItemsPanel> 
            </ItemsControl> 
           </StackPanel> 
          </DataTemplate> 
         </GridViewColumn.CellTemplate> 
        </GridViewColumn> 
        <!-- Binding with data triggers --> 

        <!-- Simple binding --> 
        <GridViewColumn DisplayMemberBinding="{Binding Path=Recommendation}" Header="Recommendations" /> 

       </GridView> 
      </ListView.View> 
     </ListView> 

,這裏是我的課的電影:

public class Movie 
    { 
     public int MovieId { get; set; } 
     public string Title { get; set; } 
     public BitmapImage MovieImage { get; set; } 
     public string Recommendation { get; set; } 
     public Movie() { } 

     public void CreateMovie(int i, string T , string R) 
     { 
      MovieId = i; 
      Title = T; 
      Recommendation = R; 
      BitmapImage bi = new BitmapImage(); 
      bi.BeginInit(); 
      bi.UriSource = new  Uri(@"http://pierre.chachatelier.fr/programmation/images/mozodojo-original-image.jpg"); 
      bi.EndInit(); 
      MovieImage = bi; 


     } 

    } 

在這裏,我只需要添加一個元素測試:

public List<Movie> MovieData= new List<Movie>(); 
Movie m = new Movie(); 
m.CreateMovie(5, "d", "s"); 
MovieData.Add(m); 
+0

我覺得你MovieData清單必須是一個ObservableCollection,不是List 爲了在對象被添加到它時得到通知。 – michele 2013-03-07 10:53:33

+0

你會解釋更多嗎? – sansa 2013-03-07 10:57:26

+0

看到http://immersivenick.wordpress.com/2012/02/04/wpf-short-observablecollection-inotifypropertychanged-2/或谷歌ObservableCollection – ZSH 2013-03-07 11:02:49

回答

0

如果你在你的代碼中使用View Model做法背後:

public class MovieViewModel 
{ 
    public ObservableCollection<Movie> MovieData { get; set; } 

    public MovieViewModel() 
    { 
     //the code you post 
     MovieData = new ObservableCollection<Movie>(); 
     Movie m = new Movie(); 
     m.CreateMovie(5, "d", "s"); 
     MovieData.Add(m); 
    } 
} 

,並在窗口構造函數:

private MovieViewModel vm; 
public MyWindow() 
{ 
    InitializeComponent(); 
    vm = new MovieViewModel(); 
    this.DataContext = vm; 
} 

編輯:我剛剛讀了你的評論。如果您的列表將永遠不會改變,它只是從數據庫加載,你可以忽略我的回答上面和:

  • 從ListView控件在 刪除ItemsSource="{Binding Path=MovieData}"您的XAML
  • 給到的ListView Name="movieListView"
名稱

更改您的代碼如下:

List<Movie> MovieData= new List<Movie>(); 
Movie m = new Movie(); 
m.CreateMovie(5, "d", "s"); 
MovieData.Add(m); 
movieListView.ItemsSource = MovieData; 
+0

感謝listview dsplayed數據,但不是圖像,任何跡象pleese – sansa 2013-03-07 11:25:20

+0

爲什麼你需要一個ItemControl爲您的圖片?例如,使用,你會看到圖像。 – michele 2013-03-07 11:32:24

+0

同樣的問題,沒有圖像顯示的數據,是否有可能與BitmapImage – sansa 2013-03-07 11:39:36