2017-09-12 8 views
-3

コードの背後に、私はObserableCollection PackageInfosでListViewをバインドしようとしています。しかし、私はそれを実行すると、何の情報も表示されません。誰かがそれをふるいにかけることができますか?WPF - ListViewへのバインドが機能しない

public partial class MainWindow : Window 
    { 
     public MainWindow() 
     {   
      InitializeComponent(); 

      PackageInfos = new ObservableCollection<PackageInfo>(); 

      polulatePackageInfos(); 

      DataContext = this; 
     }   

     public ObservableCollection<PackageInfo> PackageInfos { get; private set; } 

     private void polulatePackageInfos() 
     { 
      PackageInfos.Add(new PackageInfo() { Name = "Apple", priceRate = "10", imageUrl = "images/GreatWallofChina.jpg" }); 
      PackageInfos.Add(new PackageInfo() { Name = "Beijing", priceRate = "6", imageUrl = "images/GreatWallofChina.jpg" }); 
      PackageInfos.Add(new PackageInfo() { Name = "China", priceRate = "4", imageUrl = "images/GreatWallofChina.jpg" }); 
     } 
    } 

XAMLセクション

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     mc:Ignorable="d" 
     Title="MainWindow" 
     Height="585" 
     Width="320"     
     x:Class="VendingMachine.MainWindow 
     xmlns:local="clr-namespace:VendingMachine"> 

    <Grid Style="{StaticResource GridStyler}"> 

     <Grid.RowDefinitions> 
      <RowDefinition Height="3*"/> 
      <RowDefinition Height="3*"/> 
      <RowDefinition Height="3*"/> 
      <RowDefinition Height="1*"/> 
     </Grid.RowDefinitions> 

     <ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Hidden"      
         ScrollViewer.VerticalScrollBarVisibility="Hidden" 
         PanningMode="Both" 
         Grid.Row="1"> 

      <ListView ItemsSource="{Binding PackageInfos, UpdateSourceTrigger=PropertyChanged}" > 
       <ListView.ItemTemplate> 
        <DataTemplate DataType="{x:Type local:PackageInfo}"> 
         <StackPanel Orientation="Horizontal"> 
          <TextBlock Text="{Binding Name}" /> 
          <TextBlock Text="{Binding priceRate}" />       
         </StackPanel> 
        </DataTemplate> 
       </ListView.ItemTemplate> 
      </ListView> 

     </ScrollViewer>  

    </Grid> 

</Window> 

答えて

1

あなたはすべてのコードを持っていけません。特にPackageInfoのクラス このクラスのベットは間違っています。それはのようになります

public class PackageInfo 
{ 
    public string Name { get; set; } 
    public string priceRate { get; set; } 
    public string imageUrl { get; set; } 
} 

私はこのクラスであなたのコードを使用し、それは私のためにうまく表示されます。 ああ、私もそのコードを持っていないので、私もあなたのXAMLからグリッドスタイラーを削除する必要がありました。

+0

私はその理由をすでに知っています。私はPackageInfoのプロパティのゲッターを持っていません。ありがとうございました! –

+0

あなたの歓迎:)幸せなコーディング。 –

関連する問題