Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6155953
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T20:31:32+00:00 2026-05-23T20:31:32+00:00

My issue involves relationships and cascaded effects between properties, and I’m wondering what best

  • 0

My issue involves relationships and cascaded effects between properties, and I’m wondering what best practices are on this.

I have a class that contains a list of varying length of numbers. When editing the list, sometimes the user prefer to set a TargetSum, so that the program enforces the list will always add to this sum. I am accomplishing this by programmatically setting the final element in the list such that list sum = TargetSum. For example, if the user chooses to UseTargetSum, then sets TargetSum = 10, then creates a list of length 4, and enters 1, 4, 2 for the first 3 elements, then the final element is programmatically fixed to 3. The user cannot change the final element themselves.

I do this behind the scenes by handling all necessary events, such as a list element value change, list length change, and the UseTargetSum option change. For each event trigger, it recalculates the last element’s value.

It works but then there was a bug when loading saved data. If a list is loaded by sequentially adding the elements, the handlers modify each entry. Regarding the example, when the first value of 1 is entered, the handlers say “a value was just added, the sum should be 10, there is currently only one element, so it needs to be 10”. So the first element gets changed to 10 behind the scenes. When the second element is next added, the handlers say “a value of 4 was just added, but the first element is already 10, so it should be zero.” At the end of the load, the final list reads 10,0,0,0 instead of 1,4,2,3.

I know it is possible to rearrange the load procedure such that I get the correct list. For instance, I could avoid enabling the TargetSum event handlers until after all the data is loaded. The list would first be created as 1,4,2,3 and then the handlers would change nothing.

But this experience makes me wonder if I am opening the door for other sneaky side effects. It seems you should be able to load data without worrying too much about an implicit ordering. It also seems unusual to have “cascading” effects between class properties. Is there a more accepted approach?

The other alternative I’m considering is to only enforce TargetSum only inside UI forms. Ie, when you know it’s a user making the change, then enforce the TargetSum, but otherwise leave the core class logic alone. That way database loads, etc, are left unaffected. But I guess the downside of not having ubiquitous enforcement is that opens the door of incorrect sums via some unforeseen complication.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T20:31:34+00:00Added an answer on May 23, 2026 at 8:31 pm

    First, I would make TargetSum an Integer Property in the Class. Next, you’ll need to expand the functionality of whatever manages the list so that all values are loaded before you do any manipulation of the values in that list.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

The issue that prompted me to ask this is a web form that was
This issue is driving me mad. I have several tables defined, and CRUD stored
1) This issue involves just one html webpage, lets call it ajax.html. 2) I
I have an issue that terrorizes me in my sleep, unrelentingly . If you
We have application that involves C++ socket server, Flash client that communicates with C++
I'm trying to troubleshoot an interesting issue from a user that involves bytecode. I
I am following this tutorial book that involves signing up and user creation for
I have an ASP.net project which involves using a custom IHttpModule. This module will
I am having an issue using BinaryFormatter.Serialize. I have this generic extension method to
My issue involves an array that is apparently not nil but when I try

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.