2016-12-11 8 views
0

静的なデータとは、まれにしか変更されないデータを意味します。 私の場合、最初の2つの列が読み込み専用で、各行の名前とコードを表す表を作成する必要があります。この2つの列の行レコードは、動的データがあるかどうかにかかわらず表示する必要があります。WPF MVVMで静的データをDataGridに取り込む最良の方法は何ですか?

----------------------------------------------------------- 
    Column1 | Column 2 | Column 3 | ..............| 
----------------------------------------------------------- 
Static Data |Static Data | Dynamic Data | Dynamic Data | 
----------------------------------------------------------- 

WPF MVVMでの静的データとデータグリッドを移入するための最良の方法は何ですか? XAMLを通じて、またはEnummを定義するか、データベースに格納するか、他の方法がありますか?動的データは、レコードがあればデータベースからロードされます。

答えて

1

最善のアプローチは、タイプTがそれぞれ「静的」データ列のパブリック読み取り専用プロパティを持つIEnumerableをするデータグリッドのItemsSourceプロパティを設定するか、または結合することであろう。

public class Item 
    { 
     public string StaticColumnA { get; } = "Some static value"; 
     public string StaticColumnB { get; } = "Some static value"; 
     public string DynamicColumnA { get; set; } 
    } 

    public MainWindow() 
    { 
     InitializeComponent(); 

     List<Item> theItems = new List<Item>() { }; 
     dg.ItemsSource = theItems; 
    } 

    <DataGrid x:Name="dg" AutoGenerateColumns="False"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding StaticColumnA}" IsReadOnly="True" /> 
      <DataGridTextColumn Binding="{Binding StaticColumnB}" IsReadOnly="True" /> 
      <DataGridTextColumn Binding="{Binding DynamicColumnA}" /> 
     </DataGrid.Columns> 
    </DataGrid> 

データオブジェクトはパブリックプロパティを介して文字列、列挙値などの静的な値を返す必要があります。

関連する問題