[英]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.