2009-07-22 8 views
6

¿Alguien puede decirme cuál es el equivalente de C# del siguiente fragmento de XAML?WPF: ayuda para convertir la expresión de enlace XAML en código subyacente

<my:DataGridTextColumn 
       Visibility="{Binding Path=DataColumns[21].IsVisible, Source={StaticResource viewmodel}, Converter={StaticResource vc}}"      
       Binding="{Binding SdDevDuration}" 
       /> 

Su enlace de visibilidad no lo puedo entender bien. DataGridTextColumn no es un FrameworkElement así que no hay método SetBinding.

Gracias de antemano,

Matt

Respuesta

11

yo trabajamos esto. Para cualquiera que esté interesado puede utilizar el BindingOperation.SetBinding method.

El código completo es,

var newCol = new DataGridTextColumn(); 
newCol.Binding = new Binding("SdDevDuration"); 

var visiblityBinding = new Binding("IsVisible"); 
visiblityBinding.Source = col; 
visiblityBinding.Converter = new VisibilityConverter();       
BindingOperations.SetBinding(newCol, DataGridTextColumn.VisibilityProperty, visiblityBinding); 
+0

Acepte su respuesta. – Sauron

+0

Lo haré. Entonces, me dice que tengo que esperar antes de aceptar mi propia respuesta. –

0

puse Fuente de la visibilidad a un StaticResource, pero todavía tengo error de ejecución AG_E_BAD_PARSER, parece que funciona en WPF, pero no en Silverlight. Estoy usando Silverlight 3 DataGridTextColumn. ¿Has probado esto en Silverlight?

Encontré otro enlace relacionado con este problema, pero todavía no encontré la solución. Silverlight DataGridTextColumn Binding Visibility

Cuestiones relacionadas