此XAML编译并运行时没有任何运行时错误:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:Custom="http://schemas.microsoft.com/wpf/2008/toolkit" x:Class="WpfApplication1.Window1"
Title="Window1" Height="300" Width="300" mc:Ignorable="d">
<StackPanel Orientation="Vertical" d:LayoutOverrides="Height" DataContext="{Binding Source={StaticResource booksDataSource}}">
<Custom:DataGrid ItemsSource="{Binding Mode=Default, XPath=/catalog/book}" AutoGenerateColumns="False">
<Custom:DataGrid.Resources>
<ControlTemplate x:Key="TemplateLoverBirds">
<StackPanel Orientation="Horizontal">
<TextBlock Text="Great book!" />
<TextBlock x:Name="textBlock" Text="{Binding Mode=Default, XPath=title}" />
</StackPanel>
</ControlTemplate>
</Custom:DataGrid.Resources>
<Custom:DataGrid.Columns>
<Custom:DataGridTextColumn Binding="{Binding Mode=Default, XPath=author}"/>
<Custom:DataGridTemplateColumn>
<Custom:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Control x:Name="TitleControl">
<Control.Template>
<ControlTemplate TargetType="{x:Type Control}">
<TextBlock Text="{Binding Mode=Default, XPath=title}" />
</ControlTemplate>
</Control.Template>
</Control>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding XPath=title}" Value="Lover Birds">
<Setter TargetName="TitleControl" Property="Template" Value="{StaticResource TemplateLoverBirds}" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</Custom:DataGridTemplateColumn.CellTemplate>
</Custom:DataGridTemplateColumn>
</Custom:DataGrid.Columns>
</Custom:DataGrid>
</StackPanel>
</Window>
但是在Blend的设计时,这被标记为无效的XAML ---并且在Visual Studio设计时,“加载已取消”屏幕显示(但在点击 Resume加载设计器后正确加载)。
答案 0 :(得分:1)
Blend仅支持WPF的子集。我注意到EventSetters也杀了混合。我和你有同样的问题。我有很多窗户运行良好,但由于奇怪的原因不能混合观看。
Strategy to diagnose Expression Blend 2 failure to open Window
我认为可能不支持Custom:DataGrid。我不知道,只是在猜测。如果你的窗口实例化并且运行正常,那么我猜混合是错误的。
答案 1 :(得分:1)
好吧,我解决了以下问题:
变化:
xmlns:Custom="http://schemas.microsoft.com/wpf/2008/toolkit
要:
xmlns:Custom="clr-namespace:Microsoft.Windows.Controls;assembly=WpfToolkit"
确保您拥有WpfToolkit的良好版本。参考工具包,你可以使用它。