Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda