/ / Jak edytować CellTemplate w Expression Blend 4 - c #, wpf, xaml, wpfdatagrid, mieszanie wyrażeń

Jak edytować CellTemplate w Expression Blend 4 - c #, wpf, xaml, wpfdatagrid, expression-blend

Oto coś, czego nie rozumiem na temat edytowania szablonów komórek w Expression Blend 4:

Kiedy ręcznie tworzę szablon komórki za pomocą xaml, kod wygląda następująco:

<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>

Co powoduje, że okno wygląda mniej więcej dobrze:

wprowadź opis obrazu tutaj

Kiedy próbuję zrobić to samo za pomocą menu Expression Blend,

wprowadź opis obrazu tutaj

Kończę z następującym kodem:

<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>

która wyświetla puste komórki bez względu na to, co wstawię do

<DataTemplate x:Key="MyDataTemplate"> :

wprowadź opis obrazu tutaj

Czy robię coś źle, czy jest to błąd mieszania wyrażeń? A jeśli jest to błąd, jak powinienem zmienić kod XAML, aby go naprawić?

Odpowiedzi:

0 dla odpowiedzi № 1

Mogę być całkowicie poza bazą, jeśli tak, przepraszam, że nierozumiem, ale wydaje się, że pytanie nadmiernie komplikuje to, co jest potrzebne. CellTemplate jest po prostu symbolem zastępczym dla wszystkiego - w siatce danych jest domyślnie pusty, więc możesz umieścić w nim wszystko, co chcesz -> w twoim przypadku „jest symbolem zastępczym dla TextBlock. To jest to, czego potrzebujesz do edycji w Blend lub jakiejkolwiek innej kontroli, którą umieszczasz w CellTemplate.