我使用的是ObjectListView,而且我有一点时间。不可否认,我在模型 - 视图结构中没有很多经验,而且最重要的是,ObjectListView页面的源forge页面已经关闭。
我有一个布尔列设置为OLV中的复选框,我希望它的行为类似于单选按钮。我的问题是我无法捕获OLV中复选框的点击事件。我的底层模型是一个File(类),它包含一个包含3个属性的Fields(class)列表。 Fields类的一个属性是此复选框。因此,据推测,该字段知道它何时被点击,但它不知道文件,它应该检查它是否有任何其他具有此属性集的字段。
有人能指出我正确的方向吗?
谢谢。
答案 0 :(得分:0)
这个怎么样?
olv.ItemChecked += delegate(object sender, ItemCheckedEventArgs e)
{
var item = e.Item as OLVListItem;
if (item != null && e.Item.Checked)
{
var objects = ObjectListView.EnumerableToArray(olv.Objects, true);
objects.Remove(item.RowObject);
olv.UncheckObjects(objects);
}
}
答案 1 :(得分:0)
这是我想出的:
private void tlvFields_SubItemChecking(object sender, BrightIdeasSoftware.SubItemCheckingEventArgs e)
{
foreach(var field in f.Fields)
{
if(field.PK)
{
field.PK = false;
}
}
tlvFields.SetObjects(_files);
}
我花了一些时间弄清楚如何弄乱视图下的模型。一旦我弄明白,这就容易了。