Estoy en el proceso de implimentar el patrón MVVC y tengo problemas para vincular una propiedad en el modelo de vista desde dentro de una DataTemplate dentro de una cuadrícula de datos. Si tengo un bloque de texto fuera de DataTemplate en la columna, funciona bien (ya que me estoy refiriendo directamente al contexto de datos de UserConrol, es decir, la máquina virtual), pero desde dentro de DataTemplate no devolverá la propiedad de texto sin formato. Sin embargo, devolverá una propiedad del elemento IEnumerable iterado.Silverlight DataGrid.Celltemplate Enlace a ViewModel
<UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
x:Class="Timesheet.Silverlight.Modules.Views.HistoryView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:Commands="clr-namespace:Microsoft.Practices.Composite.Presentation.Commands;assembly=Microsoft.Practices.Composite.Presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ViewModels="clr-namespace:Timesheet.Silverlight.Modules.ViewModels"
x:Name="View">
<StackPanel>
<TextBlock Text="{Binding Path=DataContext.testText, ElementName=View}" />
<data:DataGrid Height="280" Width="500" ItemsSource="{Binding TimeSlots}" AutoGenerateColumns="False" >
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Allocation Area" Binding="{Binding TimeAllocationArea.TimeAllocationName}" Width="200" />
<data:DataGridTextColumn Header="Start" Binding="{Binding StartTime}" Width="80" />
<data:DataGridTextColumn Header="End" Binding="{Binding Path=DataContext.testText, ElementName=View}" Width="80" />
<data:DataGridTemplateColumn Header="Modify" Width="200" >
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=DataContext.testText, ElementName=View}" />
</StackPanel>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
</StackPanel>
</UserControl>
¿Hay algún tipo de problema con el DataTemplate que estoy ignorando? Tenga en cuenta que "{Binding Path = DataContext.testText, ElementName = View}" funciona para todos los elementos excepto el de DataTemplate. (Nota Sé que el primer Textblock fuera de la DG no necesita el ElementName, etc., pero lo he hecho de esta manera para probarme a mí mismo que está haciendo referencia a lo correcto)
La publicación de Jaime es específica de WPF, pero definitivamente explica por qué esto no funciona tanto en WPF como en Silverlight. Sin embargo, la solución en la publicación de Jaime no funcionará para el enlace de datos de elemento a elemento, por lo que no resuelve este problema. –