2013-10-08 132 views
0

的實際項目我有這clasesWPF綁定參考的DataGrid

public class Class1 
{ 
    public int Class1Id { get; set; } 
    public string Description { get; set; } 
} 

public partial class Class2 
{ 
    public Class2() 
    { 
     this.Class3 = new HashSet<Class3>(); 
    } 

    public int Id { get; set; } 
    public string Description { get; set; } 
    public Nullable<int> Class1Id { get; set; } 

    public virtual Class1 Class1{ get; set; } 
    public virtual ICollection<Class3> Class3 { get; set; } 

} 

public partial class Class3 
{ 
    public int Class3Id { get; set; } 
    public int OtherProp { get; set; } 
    public string Description { get; set; } 
} 

然後在一個視圖模型我有Class2中的observabel收集

ObservableCollection<Class2> MyColl = new ObservableCollection<Class2>(); 

這可觀察被綁定到網格,因爲這:

<DataGrid x:Name="DatGridPlanillas" ItemsSource="{Binding MyColl,Mode=TwoWay}" 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Class1 Description" Binding="{Binding /Class1.Description}"/> 
     <DataGridTextColumn Header="Class2 Id" Binding="{Binding Id ,Mode=TwoWay}"/> 
     <DataGridTextColumn Header="Class2 Descriprion" Binding="{Binding Description}"/> 
    </DataGrid.Columns> 
</DataGrid> 

我的問題是Class1.Description從來沒有顯示和結果面板上VS有一條消息顯示

System.Windows.Data Error: 40 : BindingExpression path error: 'Class1' property not found on 'current item of collection' ''Class2_D0FAA12D4E698EE37B64760A79763EA5E957BAC04F8E9FED7BDA4B99892A712D' (HashCode=61628235)'. BindingExpression:Path=/Class1.Description; DataItem='Class2_D0FAA12D4E698EE37B64760A79763EA5E957BAC04F8E9FED7BDA4B99892A712D' (HashCode=61628235); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String') 

所有其他屬性都按照我的預期呈現。

什麼導致這個問題?

+0

你是什麼意思與實際項目? Class2中沒有實際項目。在Binding =「{Binding /Class1.Description}」中刪除'/',它應該顯示描述。 – LPL

+0

Tks for your help沒有任何東西會拋出這個錯誤ystem.Windows.Data錯誤:40:BindingExpression path error:'對象 ' '' Class2_D0FAA12D4E698EE37B64760A79763EA5E957BAC04F8E9FED7BDA4B99892A712D '上沒有發現屬性' 的Class1' (的HashCode = 41412514)' BindingExpression:路徑= Class1.Description;的DataItem = 'Class2_D0FAA12D4E698EE37B64760A79763EA5E957BAC04F8E9FED7BDA4B99892A712D'(的HashCode = 41412514);目標元素是 '的TextBlock'(名稱= '' );目標屬性是'文本'(類型'字符串') –

回答

3

我認爲你有一個拼寫錯誤。

更改綁定到以下幾點:

<DataGridTextColumn Header="Class1 Description" Binding="{Binding Path=Class1.Description}"/> 

<DataGridTextColumn Header="Class1 Description" Binding="{Binding Class1.Description}"/> 

這爲我工作,當我想你的例子。

+0

優秀至少兩個小時與此戰鬥 –

+0

我很高興我可以幫忙:-) –