Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

175
Vistas
¿Es posible enlazar a un campo ValueTuple en WPF con C#7?

Si tengo una propiedad de modelo de vista

 public (string Mdf, string MdfPath) MachineDefinition { get; set; }

y trato de enlazarlo en XAML / WPF

 <Label Content="{Binding Path=MachineDefinition.Item2}" />

o

 <Label Content="{Binding Path=MachineDefinition.MdfPath}" />

Me sale el mismo error

ingrese la descripción de la imagen aquí

Veo que los campos de ValueTuple son realmente campos, no propiedades . ¿Es este el problema?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

La confusión es que para Tuple de estilo antiguo (pre C # 7) todos los elementos eran propiedades

https://msdn.microsoft.com/en-us/library/dd386940(v=vs.110).aspx

y por lo tanto vinculante. Para ValueTuple son campos

https://github.com/dotnet/runtime/blob/5ee73c3452cae931d6be99e8f6b1cd47d22d69e8/src/libraries/System.Private.CoreLib/src/System/ValueTuple.cs#L269

y no vinculante.

Si busca en Google "WPF Tuple Binding" , obtendrá un montón de falsos positivos porque las tuplas de estilo antiguo se pueden vincular, pero las nuevas no.

over 4 years ago · Santiago Trujillo Denunciar

0

Algo que podría intentar es implementar un convertidor de valor. Aquí hay un ejemplo...

 public class TupleDisplayNameConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var tuple = value as (Int32 Id, String Name)?; if (tuple == null) return null; return tuple.Value.Name; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotSupportedException(); } } <TextBlock Text="{Binding Converter={StaticResource TupleDisplayNameConverter}, Mode=OneWay}" />

Espero que esto ayude.

over 4 years ago · Santiago Trujillo Denunciar

0

El enfoque MdfPath nunca funcionará, ya que la parte del nombre es muy restrictiva en términos de dónde existe realmente. Esencialmente, es vudú de compilador puro y no existe en el modelo de tipo, lo que significa que cualquier cosa que hable con el modelo de tipo (que incluye reflexión, herramientas de interfaz de usuario, serializadores, etc.) solo verá los nombres Item1 , Item2 ; no los nombres falsos.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda