[Mono-bugs] [Bug 664827] New: A control property's XXXIsNull property isn't set when no items are in the data source.
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Sun Jan 16 16:32:55 EST 2011
https://bugzilla.novell.com/show_bug.cgi?id=664827
https://bugzilla.novell.com/show_bug.cgi?id=664827#c0
Summary: A control property's XXXIsNull property isn't set when
no items are in the data source.
Classification: Mono
Product: Mono: Class Libraries
Version: 2.6.x
Platform: Other
OS/Version: Other
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Windows.Forms
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: cvolzke at live.com.au
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: ---
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1036 Safari/532.5
If there is a property with a corresponding XXXIsNull property like so:
public bool ReadOnly { get; set; }
public bool ReadOnlyIsNull { get; set; }
The ReadOnlyIsNull property is set to true (only) when there are no items in
the data source.
Funnily enough, there's code to deal with an XXXIsNull property on the data
source (not the control as above) where ms.net does not..
Reproducible: Always
Steps to Reproduce:
Unit test:
[Test]
public void Test_DataSourceIsNullProperty()
{
BindingList<TestDataSource> dataSource = new BindingList<TestDataSource>();
Control.DataBindings().Add("ReadOnly", dataSource, "IsReadOnly", false,
DataSourceUpdateMode.OnPropertyChanged);
Form.Controls.Add(Control);
Control.DataBindings()["ReadOnly"].ReadValue();
AssertEquals(true, Control.ReadOnly, "ReadOnlyIsNull set to true when list
is empty");
Form.Show();
Application.DoEvents();
dataSource.AddNew();
AssertEquals(1, dataSource.Count);
AssertEquals(false, Control.ReadOnly, "ReadOnly set to false when list has
items");
dataSource.RemoveAt(0);
AssertEquals(0, dataSource.Count);
AssertEquals(true, Control.ReadOnly, "ReadOnlyIsNull set to true when list
is empty");
}
Form form;
Form Form
{
get { return form ?? (form = new Form()); }
}
TestControl control;
TestControl Control
{
get { return control ?? (control = new TestControl()); }
}
class TestDataSource
{
public event EventHandler IsReadOnlyChanged;
bool isReadOnly;
public bool IsReadOnly
{
get { return isReadOnly; }
set
{
isReadOnly = value;
if (IsReadOnlyChanged != null)
{
IsReadOnlyChanged(this, EventArgs.Empty);
}
}
}
}
Actual Results:
Unit test fails.
Expected Results:
Unit test should pass, as it does on ms.net.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list