无法在WPF设计器中创建[UserControl]的实例

时间:2015-01-11 19:56:47

标签: c# wpf user-controls wpf-controls datatrigger

我一直遇到一些与WPF设计器有关的奇怪问题,它声称无法实例化用户控件,即使我运行程序时,它运行得很好,我已经设法找到了这段代码这导致了问题,但我无法理解为什么。

清洁解决方案后:

Everything seems to be fine here

清洁&重建:

The error showed up

错误讯息:Error 1 Cannot locate resource 'userinterface/visualresources/images/error.png'. C:\Users\......\Armt\Armt\UserInterface\Views\MainWindow.xaml 21 9 Armt

这是它声称有问题的代码:

                        <GridViewColumn >
                        <GridViewColumn.CellTemplate>
                            <DataTemplate DataType="models:Issue">
                                <Image x:Name="image" Source="/UserInterface\VisualResources\Images\information.png" Height="14" Width="14" />
                                ******FROM HERE******
                                <DataTemplate.Triggers>
                                    <DataTrigger Binding="{Binding Severity}" Value="Error" >
                                        <Setter TargetName="image" Property="Source" Value="/UserInterface\VisualResources\Images\error.png" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Severity}" Value="Warning" >
                                        <Setter TargetName="image" Property="Source" Value="/UserInterface\VisualResources\Images\warning.png" />
                                    </DataTrigger>
                                </DataTemplate.Triggers>
                                ******END******
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>

删除DataTemplate.Triggers部分使得一切都在设计器内外工作,如果我选择IssuesListView UserControl选项卡并点击重建,只有当我改回主视图选项卡时,错误才会消失又回来了。

这是UserControl的构造函数:

    public IssuesListView()
    {
        InitializeComponent();

        // To avoid design-time issues
        if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
        {
            DataContext = ((App)Application.Current).GetInstance<IssuesListViewVm>();
        }
    }

这里可能发生什么?不知何故,设计师无法找到资源,但在运行时它呢?

0 个答案:

没有答案