首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF -无法从DataTemplate中绑定到DataTemplate

WPF -无法从DataTemplate中绑定到DataTemplate
EN

Stack Overflow用户
提问于 2013-06-03 19:27:26
回答 1查看 2.8K关注 0票数 1

我无法从另一个DataTemplate中绑定到DataTemplate,是不是因为运行时数据源不存在?

代码语言:javascript
复制
<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}" />中的绑定是否有问题

为什么员工不会绑定?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-03 23:05:18

对我很管用。DataContext设置好了吗?在我尝试这个的时候把我给绊倒了。

Xaml

代码语言:javascript
复制
<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>

代码隐藏

代码语言:javascript
复制
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; }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16895670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档