繁体   English   中英

重用工作窗口和帮助程序类时,WPF XAML命名空间问题

[英]WPF XAML namespace issue when reusing Working Window and helper class

我有一个WPF Window类,该类使用本地(在相同名称空间中)类从ViewModel关闭窗口。 我从另一个项目复制了该类,在该项目中它工作得很好,并适当地更改了名称空间。 我收到一个设计器,并且由于VS编译错误,该类在名称空间中不存在。 这是我的Xaml:

<Window x:Class="MOABIMTools.Views.CreateTypesView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:xc="clr-namespace:MOABIMTools"
    xmlns:local="clr-namespace:MOABIMTools.Views"
    local:DialogCloser.DialogResult="{Binding DialogResult}"
    Title="BIM Parameter Maintenance" Height="500" Width="1000">

这是DialogCloser类:

using System.Windows;

namespace MOABIMTools.Views
{
    public static class DialogCloser
    {
        public static readonly DependencyProperty DialogResultProperty =
            DependencyProperty.RegisterAttached(
                "DialogResult",
                typeof(bool?),
                typeof(DialogCloser),
                new PropertyMetadata(DialogResultChanged));

        private static void DialogResultChanged(
            DependencyObject d,
            DependencyPropertyChangedEventArgs e)
        {
            var window = d as Window;
            if (window != null)
                window.DialogResult = e.NewValue as bool?;
        }
        public static void SetDialogResult(Window target, bool? value)
        {
            target.SetValue(DialogResultProperty, value);
        }
    }
}

我已经清理并重建,通过复制/粘贴重置了xaml中的命名空间引用,关闭了VS并重新启动,并将其从xc名称空间更改为本地,但没有任何帮助。 我只是没有看到错误。 但是我在Xaml文件中的DialogCloser绑定行下得到了一条弯曲的蓝色线条,以及一个编译错误:

Error       The name "DialogCloser" does not exist in the namespace "clr-namespace:MOABIMTools.Views".

我觉得错误肯定很简单,因为窗口和DialogCloser类都来自另一个工作项目。 但是我没有看到问题。

DialogCloser位于namespace MOABIMTools.Views ,但是在您的xaml中设置xmlns:xc="clr-namespace:MOABIMTools" ,然后使用xc:DialogCloser.DialogResult进行调用。

我认为您需要更改的是替换

xmlns:xc="clr-namespace:MOABIMTools"

xmlns:xc="clr-namespace:MOABIMTools.Views"

您在设计期间没有出错的原因,可能是因为它使用的是旧的编译对象。 尝试重建所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM