2012-04-10 9 views
0

は、ここで私はExpression Blendの4のセルテンプレートの編集については理解していないことだは、Expression BlendでCellTemplateを編集する方法4

大丈夫多かれ少なかれ見えた、ウィンドウに結果
<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:leartWPF" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" 
    x:Class="leartWPF.Window1" 
    x:Name="Window" 
    Title="Window1" 
    Width="640" Height="480"> 
    <Window.Resources> 
     <local:GroupDataSource x:Key="GroupDataSourceDataSource" d:IsDataSource="True"/> 

    </Window.Resources> 

    <Grid x:Name="LayoutRoot" Margin="0" DataContext="{Binding Source={StaticResource GroupDataSourceDataSource}}"> 
     <DataGrid Margin="0" HeadersVisibility="None" ItemsSource="{Binding GroupExtednenDatas, ElementName=Window}" AutoGenerateColumns="False" RowHeight="25" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" CanUserAddRows="False" > 
      <DataGrid.Columns> 
       <DataGridTemplateColumn Header="Groups" Width="Auto" IsReadOnly="True" > 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding Name}" Width="200"></TextBlock> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
       </DataGridTemplateColumn> 
      </DataGrid.Columns> 
     </DataGrid>  
    </Grid> 
</Window> 

:私は同じことをやろう

enter image description here

私は次のコードで終わり、

enter image description here

をExpression Blendののメニューを使用して:関係なく、私は

<DataTemplate x:Key="MyDataTemplate"> : 

enter image description here

の内側に入れたものを、空のセルを表示しません

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:leartWPF" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" 
    x:Class="leartWPF.Window1" 
    x:Name="Window" 
    Title="Window1" 
    Width="640" Height="480"> 
    <Window.Resources> 
     <local:GroupDataSource x:Key="GroupDataSourceDataSource" d:IsDataSource="True"/> 
     <DataTemplate x:Key="MyDataTemplate"> 
      <TextBlock Text="{Binding Name}" Width="200"></TextBlock> 
     </DataTemplate> 

    </Window.Resources> 

    <Grid x:Name="LayoutRoot" Margin="0" DataContext="{Binding Source={StaticResource GroupDataSourceDataSource}}"> 
     <DataGrid Margin="0" HeadersVisibility="None" ItemsSource="{Binding GroupExtednenDatas, ElementName=Window}" AutoGenerateColumns="False" RowHeight="25" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" CanUserAddRows="False" > 
      <DataGrid.Columns> 
       <DataGridTemplateColumn Header="Groups" Width="Auto" IsReadOnly="True" CellTemplate="{DynamicResource MyDataTemplate}" > 

       </DataGridTemplateColumn> 
      </DataGrid.Columns> 
     </DataGrid>  
    </Grid> 
</Window> 

私は間違ったことをしますか?またはこのExpression Blendのバグですか?これがバグの場合は、XAMLコードを変更してそれを修正する必要がありますか?

+0

私の知る限り、それらはテンプレートがどのように宣言されているかに違いがあります:前者はリソース、後者はインラインです。同じコードビハインドを使用していますか? P.S.入力ミスは 'DataGrid' ItemsSourceで欲しいですか? –

+0

私は実際にそれを数回リダイレクトします。また、私はDynamicResourceをStaticResourceに置き換えただけで、再び動作します。 DynamicResourceに固有の問題があるようです。 –

答えて

0

私は完全に基盤から外れているかもしれませんが、もしそうなら、理解できないのは残念ですが、必要なことは過度に複雑になっているようです。 CellTemplateは何のプレースホルダにすぎません。データグリッドではデフォルトでは空ですので、必要なものを置くことができます。>あなたのケースでは、TextBlockのプレースホルダです。これは、Blendで編集する必要があるか、またはCellTemplateに入れている他のコントロールです。

+0

DynamicResourceが動作していないテンプレートを参照するという問題を絞りました。この問題はStaticResourceというリンクで正しく機能します。 –

+0

ああ、クールだよ。 –