[英]Bind object properties to a datagrid in WPF
我有以下課程:
public class Sp3dItem
{
public Sp3dItem()
{
Items= new ObservableCollection<Sp3dItem>();
}
public string OID
{
get;
set;
}
public string Name
{
get;
set;
}
public string Type
{
get;
set;
}
public ObservableCollection<Sp3dItem> Items
{
get;
set;
}
}
我需要向 Datagrid(或任何其他類型的網格)顯示此對象實例的屬性。 就像 Visual Studio 中的屬性窗口一樣。 但是有一些我不在乎的屬性,比如“項目”,我只需要顯示字符串類型的屬性,並且只需要顯示非空值的屬性(最后一個是加分項,不是真正的需要)。
問題是,我可以通過綁定來做這樣的事情還是我必須手動組裝網格上的數據?
聽起來您想要一個屬性網格來查看單個對象實例的屬性,其中每個屬性/值對都是一個“行”,是嗎? 如果是這種情況,請查看一些第三方屬性網格控件。 WPF 擴展工具包有一個免費的。
通常,這些網格可以自動發現目標對象的屬性,您可以選擇通過使用[Browsable(false)]
裝飾它們來隱藏某些屬性。
是的...一旦您弄清楚內置綁定向導的工作原理,就可以輕松實現。
這個例子是針對一個
<Label...
//in code behind
public static string Error
{
get { return _Error; }
set { _Error = value; }
}
現在只需在設計器中單擊 XMAL 組件一次。
<Label Grid.Row="2" <=Click here one time
<Label Grid.Row="2"
Content="{
Binding Error,
RelativeSource={
RelativeSource FindAncestor,
AncestorType={x:Type local:MainWindow}}}"/>
上面的冗長只是說:
如果需要,您還可以編輯 Datagrid 的模板,但這與您的問題無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.