我想構建一個簡單的屬性視圖,其中可以更改每個值。識別自動生成的文本框
的屬性由一個名字類似這樣的分組:
- 名1:property1,property2
- 名2:property1,property2
- ...
S Ø我創建一個DataGrid與模板填充網格(注意,我刪除了所有的樣式屬性等與文本值也只是一個例子):
<DataGrid Name="propertyGrid">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Property Group Name">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding propertyGroupName}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Property 1">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding property1}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Property 2">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding property2}" TextChanged="TextBox_TextChanged" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
正如你所看到的,現在我想補充一個TextChanged
事件,並有我的問題:我從哪裏得到propertyGroupName
信息,因爲我只需要更改property2
從特定propertyGroup
。
我準備好了任何提示或解決方案......也許'自動生成datagrid'不是最好的決定嗎?
編輯我的代碼在後面。在這裏,您可以看到頁面填充DataGrid
和我綁定的類(注意方法GetPropertyX
只是讀我的屬性文件):
public PropertiesPage()
{
InitializeComponent();
List<PropertyGroup> properties = new List<PropertyGroup>();
properties.Add(GetPropertyGroup("propertyGroup1"));
properties.Add(GetPropertyGroup("propertyGroup2"));
properties.Add(GetPropertyGroup("propertyGroup3"));
propertyGrid.ItemsSource = properties;
}
private PropertyGroup GetPropertyGroup(string propertyGroupName)
{
return new CarrierConfig()
{
PropertyGroupName = propertyGroupName,
Property1 = GetProperty1(propertyGroupName),
Property2 = GetProperty2(propertyGroupName)
};
}
public class PropertyGroup
{
public string PropertyGroupName { get; set; }
public string Property1 { get; set; }
public string Property2 { get; set; }
}
你在尋找一個屬性網格?如果是這樣的話[這裏](http://wpg.codeplex.com/) – Muds
沒有可靠的方法來做到這一點與DataGrid。如果你發佈你正在綁定的課程,我可以進一步幫助你。也許TreeView與HierarchicalDataTemplate將是一個不錯的選擇 – Domysee
@Muds謝謝,我會看看這個! – Sonnywhite