2016-04-11 38 views
0

まもなく、私はグリッドとWPFが新しく、何らかの理由でListView内にコンテンツが表示されず、グリッドがそれを引き起こしていると確信しています。
WPFでのC#ListView、コンテンツの表示

<Grid Canvas.Left="223" Canvas.Top="228"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="9*"/> 
      <RowDefinition Height="28*"/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="8*"/> 
      <ColumnDefinition Width="21*"/> 
      <ColumnDefinition Width="29*"/> 
      <ColumnDefinition Width="29*"/> 
     </Grid.ColumnDefinitions> 
     <ListView HorizontalAlignment="Left" Height="123" VerticalAlignment="Top" Width="589" Name="LibraryList" Margin="-188,-76,-141.001,-10" IsEnabled="False" Grid.ColumnSpan="4" Grid.RowSpan="2" > 
      <ListView.View> 
       <GridView> 
        <GridViewColumn Header="Item Name" DisplayMemberBinding="{Binding ItemName}" Width="70"/> 
        <GridViewColumn Header="Copy Number" DisplayMemberBinding="{Binding CopyNumber}" Width="85"/> 
        <GridViewColumn Header="Guid" DisplayMemberBinding="{Binding Guid}" Width="100"/> 
        <GridViewColumn Header="Print Date" DisplayMemberBinding="{Binding Date}" Width="90"/> 
        <GridViewColumn Header="Best Seller" DisplayMemberBinding="{Binding BestSeller}" Width="90"/> 
        <GridViewColumn Header="Category" DisplayMemberBinding="{Binding Category}" Width="70"/> 
        <GridViewColumn Header="Sub Category" DisplayMemberBinding="{Binding SubCategory}" Width="80"/> 
       </GridView> 
      </ListView.View> 
     </ListView> 
    </Grid> 

実装は次のとおりです。

​​

任意のアイデア?
ところで:ときどき私はメッセージを受け取ります:入力が正しい形式ではありません。

+0

Visual Studioのデバッグ出力ウィンドウでバインディングエラーが発生していないか確認してください – benPearce

+0

入力文字列の形式のエラーは、おそらく.Parse操作の1つであるManageCtors行からのものです – benPearce

答えて

0

バインドするデータは文字列の配列ですが、各GridViewColumnには名前でバインドされています。これはおそらく問題です。

データ行を独自のクラスにモデル化し、クラスのインスタンスをListViewItem.Contentプロパティに設定することをお勧めします。

public class ItemData 
{ 
    public string ItemName { get; set; } 
    public int CopyNumber { get; set; } 
    public Guid Guid { get; set; } 
    public DateTime Date { get; set; } 
    public string BestSeller { get; set; } 
    public string Category { get; set; } 
    public string Subcategory { get; set; } 
} 


ItemData row = new ItemData { 
      // set each property value 
     }; 
ListViewItem _listViewItem = new ListViewItem(); 
_listViewItem.Content = row; 
LibraryList.Items.Add(_listViewItem.Content); // not sure if you need content here 

ListView Itemsコレクションにアイテムを直接追加するのではなく、ListViewでItemsSourceをバインドする方がよいと思います。

ObservableCollection<ItemData> items = new ObservableCollection<ItemData>(); 
// add your ItemData instances to the items collection 
LibraryList.ItemsSource = items; 

また、あなたが始めるために他の場所がStackOverflowの上のアドバイスがたくさんあるし、そのMVVMパターン、以下のほうが良いでしょう。

関連する問題