在gridview中实现按钮的最佳方法是什么?

时间:2015-12-14 01:04:03

标签: xaml gridview data-binding uwp c++-cx

这是用于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做些什么?在这个假设的场景中,所有的标题和版画线都是相同的,但在我的实际项目中,它们对于矢量的每个成员都是不同的。

1 个答案:

答案 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>

然后拿起参数并执行你的逻辑。 我希望这能解决你的问题。