2011-03-09 118 views
0

更容易一个。合并字典

Resources.xaml包含:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
<DataTemplate DataType="TestInstanceViewModel" x:Name="TestInstanceViewModelTemplate"> 
    <StackPanel Orientation="Vertical"> 
     <Button Command="{Binding Path=StartCommand}" Content="Start"/> 
     <Button Command="{Binding Path=StopCommand}" Content="Stop"/> 
     <TextBlock Text="{Binding Path=Status}"/> 
    </StackPanel> 
</DataTemplate> 

窗口包含:

<Window x:Class="TestClientMainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Testing client" Height="350" Width="525" 
    DataContext="{StaticResource ResourceKey=TheViewModel}" Background="#FFD4BFBF"> 
<Window.Resources> 
    <ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="Resources.xaml"/> 
    </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 
<Grid> 
    <StackPanel HorizontalAlignment="Stretch" Name="stackPanel1" VerticalAlignment="Stretch"> 
     <ToolBar Height="26" Name="toolBar1"> 
      <ItemsControl> 
       <Button Command="{Binding Path=CreateNewTestCommand}">Add new Test</Button> 
      </ItemsControl> 
     </ToolBar> 
     <ListBox ItemsSource="{Binding Path=TestInstances}" ItemTemplate="{StaticResource TestInstanceViewModelTemplate}" Name="listBox1" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" MinHeight="{Binding ElementName=stackPanel1, Path=Height}" Height="274" /> 
    </StackPanel> 
</Grid> 

然后有一个列表框,我尝试:

ItemTemplate="{StaticResource TestInstanceViewModelTemplate}" 

这不起作用。访问已添加到合并字典的资源后面的逻辑是什么?

感谢

编辑:

回答

3

尝试<DataTemplate DataType="TestInstanceViewModel" x:Key="TestInstanceViewModelTemplate">

+0

完美的,你看我已经不再想着今天,感谢在充盈会在发布前从事大脑更:) – Ian

+0

这是正确的? x:键而不是x:名称。你不是第一个相信我的人。 –

+0

这是那些日子之一:) – Ian