我有一个绑定到对象的BindingList的DataGridView
public readonly BindingList<Target> Targets = new BindingList<Target>();
private void BindControls()
{
var source = new BindingSource(Targets, null);
targetsDataGridView.DataSource = source;
historyTextBox.DataBindings.Add(
new Binding("Text", source, "HistoryText", true)
);
}
我的对象(Target(实现INotifyPropertyChanged
,并在数据发生更改时显示这些更改。
我的目标对象中的一个属性是HistoryText
,它太大了,无法在网格中显示,所以我在它下面添加了一个textBox
如何使用绑定来显示网格中当前选定行中一列的值。我尝试添加主细节绑定源,但看不出这种关系如何适合我的场景。如果数据来自数据集,而不是来自BindingList<Target>
或List<Target>
,则这似乎只起作用。
由于我不希望HistoryText出现在网格中,我将Browseable属性设置为false:
[Browsable(false)]
public string HistoryText => string.Join(Environment.NewLine, from r in History select r.ToString());
删除它解决了问题。我只是用其他方法把柱子移走。