我正準備學習WPF中的CommandBindings,但不知為何我無法創建自定義命令。
出現了以下錯誤。(XDG0008) 名稱 "CustomCommands "不存在于名稱空間 "clr-namespace:CommandBindingWPF"
<Window.CommandBindings>
<CommandBinding Command="local:CustomCommands.Exit" CanExecute="ExitCommand_CanExecute" Executed="ExitCommand_Executed" />
</Window.CommandBindings>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent()。
DataContext = viewmodel。
}
//更多代碼但與問題無關。
private void ExitCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e)。
{
e.CanExecute = true。
}
private void ExitCommand_Executed(object sender, ExecutedRoutedEventArgs e)。
{
Application.Current.Shutdown()。
}
}
public static class CustomCommands
{
public static readonly RoutedUICommand Exit = new RoutedUICommand
(
"Exit"。
"Exit",
typeof(CustomCommands)
);
/Define more commands here, just like the one above[/span].
}
我甚至嘗試從https://wpf-tutorial.com/commands/implementing-custom-commands/中復制粘貼,并將CanExecute和Executed粘貼在MainWindow-class中進行測驗(當然我也改變了xmlns:self),但它仍然無法作業。誰能幫幫我?這讓我很抓狂。
uj5u.com熱心網友回復:
我自己修復了它!
我關閉了VS,重建了專案,錯誤沒有再出現(WPF設計器問題:XDG0008 名稱 "NumericTextBoxConvertor "不存在于命名空間 "clr-namespace:PulserTester.Convertors")。
我討厭VS。
uj5u.com熱心網友回復:
Studio中的XAML設計器不是從專案中獲取關于型別的資訊,而是從它們的程式集中獲取。
因此,如果你對專案做了修改,那么設計器將不會看到它們,直到你對專案做一個新的裝配。
你不需要為此關閉/打開作業室。
進入 "專案 "選單,在那里選擇 "構建"。
或者也可以在 "專案 "的背景關系選單中的 "解決方案資源管理器 "中完成。
此外,如果你對專案進行了修改,當解決方案被啟動執行時,將自動執行新的構建。
在非常罕見的情況下(通常是在出現一些錯誤后,錯誤地關閉作業室),在構建之前,你仍然需要對專案或解決方案執行 "清理"。
P.S.由于XAML設計器的這一特殊性,為了不至于經常遇到這樣的錯誤(在某些情況下,它們可能非常令人困惑,甚至導致編譯錯誤),我們建議在其他專案中創建XAML中使用的所有型別。
這使得我們更容易理解XAML設計器和編譯器錯誤和警告的來源。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/307905.html
標籤:
