2010-02-02 16 views
8

Tengo Custom Control con un TextBox en la plantilla predeterminada. El control personalizado tiene estas propiedades 2 de dependencia (entre otros):WPF TextBox.Text con MultiBinding

SelectedValue, NullText (texto que aparezca en el cuadro de texto cuando no hay nada seleccionado y se proporciona el valor)

me gustaría establecer el TextBox.Text con el valor NullText cuando SelectedValue es nulo y el NullText no es nulo.

<TextBox.Text>            
<MultiBinding Converter="{StaticResource myConverter}"> 
    <Binding RelativeSource="TemplatedParent" Path="SelectedValue"/> 
    <Binding RelativeSource="TemplatedParent" Path="NullText"/> 
</MultiBinding>            
</TextBox.Text> 

Tengo un IMultiValueConverter:

public class MyConverter : IMultiValueConverter 
{} 

Con esta definición XAML Tengo 'tipo no tiene una clase pública TypeConverter' Excepción

¿Cómo resolverlo, por favor?

+0

lo siento, no me di cuenta de que realmente estaban publicando una respuesta, pensé que cuando acaba la actualización de la cuestión (downvote eliminado) – Natrium

+0

OK :) ¿Qué debo hacer ahora? Porque la pregunta aún está abierta –

+0

En lugar de publicar su solución como una edición, publique su solución como respuesta y márquela como respuesta. –

Respuesta

21

Encontré SOLUCIÓN por mi cuenta: El problema fue con RelativeSource. Esta es la forma en que debe ser similar:

<TextBox.Text>            
<MultiBinding Converter="{StaticResource myConverter}"> 
    <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="SelectedValue"/> 
    <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="NullText"/> 
</MultiBinding>            
</TextBox.Text> 
Cuestiones relacionadas