2013-10-04 29 views
2

我有一個Settings類是這樣的:兩列的DataGrid:屬性名和屬性值

public class Settings { 
    public string Foo { get; set; } 
    public int Bar { get; set; } 
} 

我可能有以下實例:

new Settings { 
    Foo = "xxx", 
    Bar = 20 
} 

,我想表明,類在這樣的DataGrid中:

-------------------- 
| Settings | Value | 
-------------------- 
| Foo | xxx | 
| Bar | 20 | 

什麼是正確的方法呢?我知道我可以創建一些臨時類(有兩個屬性),並且使用反射可以創建該類的多個實例作爲Settings中的屬性,但是我也許有一種更乾淨的方式來實現它,利用綁定(雙向)的優點,等等

我正在使用WPF + MVVM。

回答

1

如果你只是顯示一個這樣的類實例,最好不要使用DataGrid。只需爲您的課程製作自定義DataTemplate,即可根據2x3網格顯示您的選擇。

-1

您可以將該類綁定到DataGrid中。

首先,您必須將屬性綁定到DataGrid中的列。

<DataGrid Name="dtgSettings" Height="200"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Foo" Width="150" Binding="{Binding Foo}" /> 
     <DataGridTextColumn Header="Bar" Width="150" Binding="{Binding Bar}" /> 
    </DataGrid.Columns> 
</DataGrid> 

之後,它只是添加新的設置dinamically。

dtgSettings.Items.Add(new Settings 
{ 
    Foo = "Foo", 
    Bar = 0, 
};