我无法从另一个DataTemplate中绑定到DataTemplate,是不是因为运行时数据源不存在?
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<UserControl.Resources>
<DataTemplate x:Key="Employees">
<StackPanel>
<ListView ItemsSource="{Binding Path=Employees}">
<ListView.View>
<GridView>
<GridViewColumn Header="FirstName">
<GridViewColumn.CellTemplate>
<DataTemplate>
<DockPanel>
<TextBlock Text="{Binding FirstName}"/>
</DockPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="LastName">
<GridViewColumn.CellTemplate>
<DataTemplate>
<DockPanel>
<TextBlock Text="{Binding LastName}"/>
</DockPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="Company">
<StackPanel>
<TextBlock>Company data</TextBlock>
<ListView
<!-- Bind current data source -->
ItemsSource="{Binding}"
<!-- Static resource (nested template) -->
ItemTemplate="{StaticResource Employees}" />
</StackPanel>
</DataTemplate>
</UserControl.Resources>
<StackPanel>
<TextBlock>Companies:</TextBlock>
<ListView ItemsSource="{Binding Companies}" ItemTemplate="{StaticResource Company}" />
</StackPanel>
</Page>我正在尝试使employees DataTemplate可重用,因为它将有助于在其他数据DataTemplate中引用。公司DataTemplate:<ListView ItemsSource="{Binding}" ItemTeplate="{StaticResource Employees}" />中的绑定是否有问题
为什么员工不会绑定?
发布于 2013-06-03 23:05:18
对我很管用。DataContext设置好了吗?在我尝试这个的时候把我给绊倒了。
Xaml
<StackPanel>
<StackPanel.Resources>
<DataTemplate x:Key="_Chest">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding WeightInKgs, StringFormat=Contains \{0\} kgs of : }"/>
<TextBlock Text="{Binding Contents}"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="_Gallery">
<ListBox ItemsSource="{Binding}" ItemTemplate="{StaticResource _Chest}" Background="Aqua"/>
</DataTemplate>
</StackPanel.Resources>
<ContentControl Content="{Binding Treasures}" ContentTemplate="{StaticResource _Gallery}" Background="Coral"/>
</StackPanel>代码隐藏
public MainWindow()
{
InitializeComponent();
Treasures = new List<Chest>{new Chest{Contents = "Gems", WeightInKgs=10},
new Chest{Contents = "Gold", WeightInKgs= 25}};
this.DataContext = this;
}
public List<Chest> Treasures { get; set; }https://stackoverflow.com/questions/16895670
复制相似问题