gpt4 book ai didi

xaml - VC++ Converter 不是命名空间的成员

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

原始问题

我正在尝试使我的 XAML 设计中的某些宽度依赖于其他宽度。为了实现这一点,我发现我需要使用 IValueConverter 来实现绑定(bind)。 .几乎可以归结为来自 this question 的方法(或者,对于更详细的帖子, click here )。

我的代码相当简单,但它不断产生以下错误:error C2039: 'GridViewWidthConverter': is not a member of 'MyNamespace' .为什么?

现在,我的 XAML 代码的相关部分如下所示:

<Page
...
xmlns:local="using:MyNamespace"
...>

<!-- Horizontal scrolling grid -->
<GridView>
<GridView.Resources>
<local:GridViewWidthConverter x:Key="GridViewWidthConverter" />
</GridView.Resources>
...
</GridView>
...
</Page>
GridViewWidthConverter.h :
#pragma once

#include "pch.h"

using namespace Platform;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Interop;


namespace MyNamespace
{
public ref class GridViewWidthConverter sealed : IValueConverter
{
public:
GridViewWidthConverter();
virtual ~GridViewWidthConverter();
virtual Object^ Convert(Object^ value, TypeName targetType, Object^ parameter, String^ language);
virtual Object^ ConvertBack(Object^ value, TypeName targetType, Object^ parameter, String^ language);
};
}
GridViewWidthConverter.cpp :
#include "pch.h"
#include "GridViewWidthConverter.h"

using namespace MyNamespace;

// Constructor
GridViewWidthConverter::GridViewWidthConverter(){}

// Destructor
GridViewWidthConverter::~GridViewWidthConverter(){}

Object ^ GridViewWidthConverter::Convert(Object ^ value, TypeName targetType, Object ^ parameter, String ^ language)
{
return value;
}

Object ^ GridViewWidthConverter::ConvertBack(Object ^ value, TypeName targetType, Object ^ parameter, String ^ language)
{
return value;
}

编辑

完整的错误规范如下:
Error C2039: 'GridViewWidthConverter': is not a member of 'MyNamespace'\generated files\xamltypeinfo.g.cpp, line 200 Error C2065: 'GridViewWidthConverter': undeclared identifier\generated files\xamltypeinfo.g.cpp, line 200 Error C2440: 'initializing': cannot convert from 'overloaded-function' to 'Platform::Object ^(__cdecl *)(void)'\generated files\xamltypeinfo.g.cpp, line 252
非常感谢!

最佳答案

对于还在苦苦挣扎的人:

XamlTypeInfo.g.cpp 是一个生成的文件,其中包括:pch.h、App.xaml.h、App.g.hpp 以及应用中每个 XAML 页面的 *.xaml.h 和 *.g.hpp 头文件.生成该文件以便它知道应用程序中的所有可绑定(bind)类型,以便在 XAML 解析器遇到它们时可以实例化它们。

如果您的转换器类型未以某种方式包含在这些头文件之一中,那么您将收到此错误。如果在预编译头文件、App.xaml.h 头文件或其他 *.xaml.h 头文件之一中 #include 头文件,则它应该清除。 (生成 .g.hpp 文件,因此您对它们所做的任何更改都不会存在。)最好将它#include 放在 pch.h 头文件中,因为这样在所有 CPP 文件和将避免编译 PCH 本身的任何问题。

来源:link

关于xaml - VC++ Converter 不是命名空间的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44031687/

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