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

  • Home
  • SEARCH
  • 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 3359466
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T02:52:32+00:00 2026-05-18T02:52:32+00:00

TLDR Version: I need to find a way to implement some sort of MessageCenter

  • 0

TLDR Version:
I need to find a way to implement some sort of “MessageCenter” where any control can register to receive messages from other controls, without knowing where those messages are coming from (or it can know, so long as it doesn’t mean any extra work for me). After typing out this whole thing, I think I’ve helped myself come to the realization of what I’m after, but if you can recommend some pre-packaged solutions, that’d be great!


So, I’m working on this project where the user gets to make some selections and (more-or-less) layout a page. The rules are very strict, though. At every step, they are given a limited number of ways in which they can alter the page. Think of it as a templating system.

There are a number of interfaces:
ITemplate, IContentArea, and ISpecificControl
Each Template has some number of content areas. Each ContentArea has exactly three specific controls.

They get composited together something like this crude drawing:
My Terrible Example

The big light purple-ish box is the template.
The yellow, pink, and brown boxes are different concrete types of IContentArea.
The green, light blue, and dark purple boxes are different concrete types of ISpecificControl.

Each concrete implementation of these interfaces will have some number of public properties that I would like the user to be able to set.

For instance:
Green boxes might let you set the font size and font color.
Light blue boxes might let you set the background color.
Dark purple boxes might let you set the image size and margin.
Yellow, pink, and brown boxes let you pick which three specific controls you want to use.
The big light purple-ish box lets you choose how the content areas are laid out (some might have only two or three, maybe they’re arranged in a diagonal).

I’ve made a custom attribute that I can apply to properties in the ViewModel that marks them as eligible for user-changes, and I’ve set aside some space to dynamically add settings controls. The idea is that the user can only edit EXACTLY ONE item at a time. When they select it, I’ll use reflection to examine the public properties of the control’s ViewModel and find all the properties that are marked with the editable attribute, look at their types, and dynamically generate controls to edit them (with bindings, of course). We’ll call this the “SettingsWizard.”

So the problem is really two-fold:

1st: How would you recommend I limit the user to only selecting a SINGLE box at a time? Clearly I need some sort of application-wide event or messaging. What form would that take exactly? And how would I register my “SettingsWizard” to pick up on these messages. I feel like this is going to be something really simple, but I’m overlooking it because it doesn’t feel right, or clean.

Anything that let one of these controls send out a message that says, “Hey, I’m the last one to get clicked on. If anyone else was selected, now you’re not,” would solve the problem, so long as the receiving controls didn’t have to know about where the message was coming from.

I was thinking some sort of static “MessageCenter” where when each control is created it registers to be passed messages (in it’s constructor) using a defined interface, and any control has the ability to send out a message to the MessageCenter, which would then pass it along. Does that sound about right? I feel like something of this nature already exists. Like the features in Prism (but I don’t really have the need for any of the rest of the features).

2nd: How would I let my “SettingsWizard” know that he’s got a new item he needs to display settings for? Presumably, a solution for the first item can also be used to solve this one. It’s just a different kind of notification.

  • 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-18T02:52:32+00:00Added an answer on May 18, 2026 at 2:52 am

    Based on your TLDR paragraph, I’d recommend taking a look at the event aggregator pattern. If you’re looking for an existing implementation, you could take a look at Prism’s. I think Prism’s is a little over-engineered and have previously posted a simpler implementation.

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

Sidebar

Related Questions

No related questions found

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.