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 1101959
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T01:06:36+00:00 2026-05-17T01:06:36+00:00

I have a usercontrol which I need to set a specific DataContext on. The

  • 0

I have a usercontrol which I need to set a specific DataContext on. The usercontrol uses multivalueconverters. However, the binding in multivalueconverter fails to use the datacontext. It works fine for regular value converters. Anyone know what is going on? To clarify, below code is not similar to my real code, it’s just a sample reproducing my issue. FOr example, my multivalueconverters take more than one argument.

XAML:

<Window x:Class="MultConvTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:MultConvTest="clr-namespace:MultConvTest"
    Title="Window1" Height="300" Width="300">

    <Window.Resources>
        <MultConvTest:MyValueConverter x:Key="MyValueConverter" />
        <MultConvTest:MyMultiConverter x:Key="MyMultiConverter" />
    </Window.Resources>

    <StackPanel>

        <!--This works, output is Formatted: 7-->
        <TextBlock 
            DataContext="{Binding Path=Data}"
            Text="{Binding Path=Length, Converter={StaticResource MyValueConverter}}" />

        <!--This works, output is Formatted: 7-->
        <TextBlock>
            <TextBlock.Text>
                <MultiBinding Converter="{StaticResource MyMultiConverter}">
                    <Binding Path="Data.Length" />
                </MultiBinding>
            </TextBlock.Text>
        </TextBlock>

        <!--This fails, the converter never access the DataContext of the textbox-->
        <TextBlock 
            DataContext="{Binding Path=Data}">
            <TextBlock.Text>
                <MultiBinding Converter="{StaticResource MyMultiConverter}">
                    <Binding Path="Length" />
                </MultiBinding>
            </TextBlock.Text>
        </TextBlock>

    </StackPanel>

</Window>

Code behind:

using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Data;

namespace MultConvTest
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();

            DataContext = this;
        }

        public string Data
        {
            get { return "My Text"; }
        }
    }

    public class MyValueConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            int number = (int)value;
            return string.Format("Formatted: {0}", number);
        }

        public object ConvertBack(object value, Type targetTypes, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

    public class MyMultiConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            // This will fail when DataContext is set. values[0] is of type Ms.Internal.NamedObject 
            // with value DependencyProperty.UnsetValue.
            int number = (int)values[0];
            return string.Format("Formatted: {0}", number);
        }

        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
  • 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-17T01:06:36+00:00Added an answer on May 17, 2026 at 1:06 am

    You are not going to like this 😉

    Simply put the line DataContext=this before InitializeComponent()

    It seems the MultiConverter for the third textbox is triggered before the global DataContext is set, thus in effect producing a null reference error…

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

Sidebar

Related Questions

Hi I have a mainView window which has its dataContext set to it's own
I have a user control with several buttons, which need to take different actions
I have a UserControl which overrides the OnRender-Method as follow: MyUsercontrol.cs: MyUserControl: UserControl {
I have a UserControl which contains a TextBox . When my main window loads
I have a UserControl which I have added to my web.config <add tagPrefix=BCF src=~/controls/MyMessageBox.ascx
Hi I have a usercontrol which includes some JavaScript, if I add the control
I have a UserControl A which contains a dropdown a placeholder At runtime the
I have a custom UserControl which has a DependencyProperty ItemTemplate of type DataTemplate. I
I have a Usercontrol(TabUserControl) which contains a TabControl. The Viewmodel of that UserControl loads
I have a UserControl at which a message is being appeared gradually and after

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.