我尝试在vs 2013中将数据绑定到textblock。
但是当我尝试将列表项转换为字符串时遇到了一些问题。
这是来自vs的错误消息:
no instance of constructor "std::basic_string<_Elem, _Traits,
_Alloc>::basic_string [with _Elem=wchar_t,
_Traits=std::char_traits<wchar_t>, _Alloc=std::allocator<wchar_t>]"
matches the argument list argument types are:
(std::_List_iterator<std::_List_val<std::_List_simple_types<std::string>>>)
这是我的代码:
list <string> c1;
//Insert Data
c1.push_back("one");
c1.push_back("two");
c1.push_back("three");
c1.push_back("Four");
c1.push_back("Five");
c1.push_back("Six");
c1.push_back("Seven");
c1.push_back("Eight");
c1.push_back("Nine");
c1.push_back("Ten");
//Random data from list
int RandNum = 0 + (std::rand() % 10);
auto en = c1.begin();
advance(c1.begin(), RandNum);
std::wstring s1(*en);
std::string s2(*en);
ENTEXT->Text = s2; //ENTEXT is textblock name
我尝试将列表元素传递给textblock,但是此代码显示
错误C2664:'无效的Windows :: UI :: Xaml :: Controls :: TextBlock :: Text :: set(Platform :: String ^)':无法将参数1从'std :: string'转换为'Platform :: String ^'
en
是迭代器。*en
wstring
。应该是这样的:
std::string s2(*en);
顺便说一句,列表元素已经是字符串,您无需进行任何转换。
要将转换std::string
为Platform::String
,您需要使用c_str
member函数:
ENTEXT->Text = en->c_str();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句