Rob*_*Rob 5 silverlight binding datatemplate mvvm viewmodel
我正在处理MVVC模式,并且在数据网格中的DataTemplate中绑定viewmodel中的属性时遇到问题.如果我在列中的DataTemplate外面有一个文本块,它工作正常(因为我直接引用UserConrol的datacontext,即VM),但是从DataTemplate中它不会返回纯文本属性.然而,它将从迭代的IEnumerable项返回一个属性.
<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>
Run Code Online (Sandbox Code Playgroud)
我忽略了DataTemplate是否存在某种问题?请注意,"{Binding Path = DataContext.testText,ElementName = View}"适用于除DataTemplate中的元素之外的所有元素.(注意我知道DG之外的第一个Textblock不需要ElementName等,但我这样做是为了向自己证明它引用了正确的东西)
我不知道这是否适用于 SL,但你可以看看:
“Columns 集合只是 Datagrid 中的一个属性;该集合不在逻辑(或可视)树中,因此 DataContext 不会被继承,这导致没有任何内容可以绑定。”
| 归档时间: |
|
| 查看次数: |
8010 次 |
| 最近记录: |