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