gpt4 book ai didi

wpf - 名称 "YesNo"在命名空间 "clr-Namespace:WPF_Tutorial.WPFTutorials.Converter"中不存在

转载 作者:行者123 更新时间:2023-12-04 16:51:55 24 4
gpt4 key购买 nike

我正在尝试从 Wpf Tuturial 学习 WPF

我在 WPF 和 VB.Net 中遇到转换问题。我正在使用 VS 2012

这是我的 XML 代码

<Window x:Class="Binding_Sample_Converter"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-Namespace:WPF_Tutorial.WPFTutorials.Converter"
Title="Binding_Sample_Converter" Height="300" Width="300">
<Window.Resources>
<!--
Error 1 The name "YesNo" does not exist in the namespace "clr-Namespace:WPF_Tutorial.WPFTutorials.Converter".
Error 2 The name "YesNo" does not exist in the namespace "clr-Namespace:WPF_Tutorial.WPFTutorials.Converter".
Error 3 The type 'local:YesNo' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

-->
<local:YesNo x:Key="YesNo" />
</Window.Resources>
<Grid>

</Grid>

这是我的 VB.Net 代码
Imports System.Windows
Imports System.ComponentModel
Imports System.Windows.Data
Namespace WPFTutorials.Converter
Public Class Binding_Sample_Converter
Public Class YesNo
Implements IValueConverter

Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.Convert
Select Case value.ToString.ToLower
Case "yes"
Return True
Case "no"
Return False
End Select
Return False
End Function

Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
If TypeOf value Is Boolean Then
If CBool(value) = True Then : Return "yes"
Else : Return "no"
End If
Else : Return "no"
End If
End Function
End Class
End Class
End Namespace

我正在尝试将上述网站教程中的 C# 代码转换为 VB.Net

错误是
        Error   1   The name "YesNo" does not exist in the namespace "clr-Namespace:WPF_Tutorial.WPFTutorials.Converter".
Error 2 The name "YesNo" does not exist in the namespace "clr-Namespace:WPF_Tutorial.WPFTutorials.Converter".
Error 3 The type 'local:YesNo' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

请帮忙

提前致谢

阿米特·萨拉夫

编辑。
呃。 & 修改后警告
        <!--
Warning 1 Namespace or type specified in the Imports 'WPFTutorials.Converter' doesn't contain any public member or cannot be found. Make sure the namespace or the type is defined and contains at least one public member. Make sure the imported element name doesn't use any aliases. D:\Data - 2012\WPF\WPF_Tutotrial\obj\Debug\Binding_Sample_Converter.g.i.vb 35 9 WPF_Tutotrial
Error 2 The name "YesNo" does not exist in the namespace "clr-namespace:WPFTutorials.Converter". D:\Data - 2012\WPF\WPF_Tutotrial\Binding_Sample_Converter.xaml 11 9 WPF_Tutotrial
Error 3 The type 'local:YesNo' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built. D:\Data - 2012\WPF\WPF_Tutotrial\Binding_Sample_Converter.xaml 12 10 WPF_Tutotrial
-->

最佳答案

您的代码中有两个问题。

第一 , 命名空间名称区分大小写。 N应该是小写。命名空间声明的语法是 clr-namespace .

第二 , YesNo Binding_Sample_Converter 的嵌套类中的类它不应该是。您can't create an instance of nested class in XAML .来自 MSDN :

In order to be able to be instantiated as an object element, your class must meet the following requirements:

  1. Your custom class must be public and support a default (parameterless) public constructor.

  2. Your custom class must not be a nested class. Nested classes and the "dot" in their general CLR usage syntax interfere with other WPF and/or XAML features such as attached properties.



XAML:
xmlns:local="clr-namespace:WPFTutorials.Converter"

转换器:

搬家 YesNo课外课 Public Class Binding_Sample_Converter并直接在命名空间下声明它。
Namespace WPFTutorials.Converter
Public Class Binding_Sample_Converter
End Class

Public Class YesNo
Implements IValueConverter

Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.Convert
Select Case value.ToString.ToLower
Case "yes"
Return True
Case "no"
Return False
End Select
Return False
End Function

Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
If TypeOf value Is Boolean Then
If CBool(value) = True Then : Return "yes"
Else : Return "no"
End If
Else : Return "no"
End If
End Function
End Class
End Namespace

关于wpf - 名称 "YesNo"在命名空间 "clr-Namespace:WPF_Tutorial.WPFTutorials.Converter"中不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20824032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com