MVVC 패턴을 구현하는 중입니다. DataGrid 내의 DataTemplate 내에서 viewmodel의 속성을 바인딩하는 데 문제가 있습니다. 열의 DataTemplate 외부에 텍스트 블록이있는 경우 DataTemplate 내에서 일반 텍스트 속성을 반환하지 않으므로 잘 작동합니다 (즉, UserConrol, 즉 VM의 datacontext를 직접 참조하기 때문에). 그러나 iterated IEnumerable 항목에서 속성을 반환합니다.Silverlight DataGrid.Celltemplate 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>
DataTemplate에 문제가 있습니까? "{Binding Path = DataContext.testText, ElementName = View}"은 DataTemplate에있는 요소를 제외한 모든 요소에서 작동합니다. (DG 밖에있는 첫 번째 Textblock이 ElementName 등을 필요로하지 않는다는 사실을 알고 있습니다.하지만이 방법을 통해 자신에게 옳은 것을 나타냄을 증명합니다.)
Jaime의 게시물은 WPF에만 해당하지만 WPF와 Silverlight에서 모두 작동하지 않는 이유는 분명합니다. 그러나 Jaime의 게시물의 해결 방법은 요소 간 데이터 바인딩에서 작동하지 않으므로이 문제는 해결되지 않습니다. –