private void button3_Click(object sender, EventArgs e) { var attribute = new KAttributeDto(); attribute.NoteTypeDto = new NoteTypeDto { Description = "aaa", Name = "bbbbb", NoteTypeId = Guid.NewGuid(), ParenNoteTypeId = null }; attribute.KAttributeValues.Add(new KAttributeTabulatedValueDto { Description = "bbb", KAttributeId = Guid.NewGuid() , KAttributeTabulatedValueId = Guid.NewGuid(), Order = 1, Value = "111" }); listMessages.Items.Add("TEST IsDirty: "); listMessages.Items.Add("----------------"); listMessages.Items.Add("Original value IsDirty: " + attribute.IsDirty()); listMessages.Items.Add("Original value NoteType IsDirty: " + attribute.NoteTypeDto.IsDirty()); foreach (var a in attribute.KAttributeValues) { listMessages.Items.Add("Original value KAttributeValue IsDirty: " + a.IsDirty()); } attribute.SetIsDirty(false); listMessages.Items.Add("==== changed IsDirty attribute to false with SetIsDirty()"); listMessages.Items.Add("Changed value IsDirty: " + attribute.IsDirty()); listMessages.Items.Add("Changed value NoteType IsDirty: " + attribute.NoteTypeDto.IsDirty()); foreach (var a in attribute.KAttributeValues) { listMessages.Items.Add("Changed value KAttributeValue IsDirty: " + a.IsDirty()); } attribute.KAttributeValues[0].Value = "222"; listMessages.Items.Add("==== changed value to child object"); listMessages.Items.Add("Changed value IsDirty: " + attribute.IsDirty()); listMessages.Items.Add("Changed value NoteType IsDirty: " + attribute.NoteTypeDto.IsDirty()); foreach (var a in attribute.KAttributeValues) { listMessages.Items.Add("Changed value KAttributeValue IsDirty: " + a.IsDirty()); } listMessages.Items.Add(""); listMessages.Items.Add("TEST IsValid: "); listMessages.Items.Add("----------------"); listMessages.Items.Add("Original value IsValid: " + attribute.IsValid()); listMessages.Items.Add("Original value NoteType IsValid: " + attribute.NoteTypeDto.IsValid()); foreach (var a in attribute.KAttributeValues) { listMessages.Items.Add("Original value KAttributeValue IsValid: " + a.IsValid()); } attribute.Name = "ZZZZZZZZZZ"; listMessages.Items.Add("--OK --------------"); listMessages.Items.Add("Original value IsValid: " + attribute.IsValid()); listMessages.Items.Add("Original value NoteType IsValid: " + attribute.NoteTypeDto.IsValid()); foreach (var a in attribute.KAttributeValues) { listMessages.Items.Add("Original value KAttributeValue IsValid: " + a.IsValid()); } attribute.KAttributeValues[0].Value = ""; listMessages.Items.Add("--Error --------------"); listMessages.Items.Add("Original value IsValid: " + attribute.IsValid()); listMessages.Items.Add("Original value NoteType IsValid: " + attribute.NoteTypeDto.IsValid()); foreach (var a in attribute.KAttributeValues) { listMessages.Items.Add("Original value KAttributeValue IsValid: " + a.IsValid()); } attribute.NoteTypeDto.Name = ""; attribute.Name = ""; listMessages.Items.Add("--GetErrorMessage --------------"); var errMsg = attribute.GetErrorMessage(false); listMessages.Items.Add(errMsg); errMsg = attribute.GetErrorMessage(); listMessages.Items.Add(errMsg); }