【发布时间】:2012-09-21 15:10:41
【问题描述】:
如何在 DataGrid 绑定中指定对象?
我的数据网格有ItemsSource="{Binding Source=TripsCollection}" 和AutoGenerateColumns="False",列设置为:
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding TripID}" IsReadOnly="True"></DataGridTextColumn>
...
</DataGrid.Columns>
但有错误:
System.Windows.Data 错误:40:BindingExpression 路径错误:“TripID” 在 'object' ''Char' (HashCode=7209070)' 上找不到属性。 绑定表达式:路径=TripID; DataItem='Char' (HashCode=7209070); 目标元素是'TextBlock'(名称='');目标属性是“文本” (输入“字符串”)。
如何将对象设置为 Trip 对象?
DataContext 类:
private ObservableCollection<Trip> _tripsCollection;
public ObservableCollection<Trip> TripsCollection
{
get { return _tripsCollection; }
set { _tripsCollection = value; NotifyPropertyChanged("TripsCollection"); }
}
旅行等级:
[Table(Name="Trips")]
public class Trip
{
private uint _tripID;
private string _start;
private string _end;
private DateTime _date;
private double _length;
private string _note;
private uint _carID = 0;
private EntityRef<Car> _Car;
..and properties for this fields..
}
设置数据上下文
public MainWindow()
{
InitializeComponent();
string connString = @"Data Source=.\SQLEXPRESS; Integrated security=SSPI; Connect Timeout=30"; // User Instance=True";
conn = new SqlConnection(connString);
conn.Open();
LogBookViewModel lbvm = new LogBookViewModel(conn);
DataContext = lbvm;
}
【问题讨论】:
-
我们能看到你的 DataContext 指向的类吗?
-
当然,但我只添加有趣的部分......
-
向我们展示您分配 DataContext 的位置。
-
在 MainWindow 构造器中通过 DataContext = lbvm; // lbvm = LogBookViewModel 类。设置数据上下文为时已晚?
-
构造函数中的这个地方绝对没问题。
标签: c# .net wpf silverlight xaml