这是用于UWP的C ++ / CX和XAML。假设我有一个班级:
public ref class foo
{
private:
String^ title;
String^ printstring;
public:
foo()
{
title = "this is my title";
printstring = "test";
}
property String^ Title
{
String^ get()
{
return title;
}
}
}
我有一个向量Platform::Collections::Vector<foo^>^ testbind
。我还有一个返回该向量的属性。在我的XAML中,我有一个gridview,ItemSource设置为testbind
的属性,ItemTemplate设置为:
<DataTemplate x:DataType="local:foo">
<StackPanel Height="100" Width="100">
<TextBlock Text="{x:Bind Title} TextWrapping="WrapWholeWords"/>
<Button x:Name=button/>
</StackPanel>
</DataTemplate>
当我点击按钮时,如何实现这一点,我可以在后面的代码中使用printstring
做些什么?在这个假设的场景中,所有的标题和版画线都是相同的,但在我的实际项目中,它们对于矢量的每个成员都是不同的。
答案 0 :(得分:0)
我没有使用c ++,但我认为你的问题与xaml有关,所以我会尝试回答这个问题。
使用DataTemplates时,总会出现无法使用命名元素的问题(无需通过遍历可视树来查找它们)。你的解决方案是绑定。
免责声明:这是浏览器代码
<DataTemplate x:DataType="local:foo">
<StackPanel Height="100" Width="100">
<TextBlock Text="{x:Bind Title} TextWrapping="WrapWholeWords"/>
<Button x:Name=button Command={x:Bind MyCommand, CommandParameter={x:Bind Title}}/>
</StackPanel>
</DataTemplate>
然后拿起参数并执行你的逻辑。 我希望这能解决你的问题。