从代码访问datatemplate(listview)的控件

时间:2012-08-12 18:06:33

标签: c# xaml listview windows-8 microsoft-metro

我有一个带有自定义datatemplate的listview,每个ListViewItem都有一个文本,一个作者和一个日期。像这样的东西

texttexttexttext
Author     Date

现在我想创建多个项目并调整这三个文本框的每个项目。

2 个答案:

答案 0 :(得分:0)

通常您可以使用FindName方法(MSDN)执行此操作,但似乎Windows 8 WinRT框架中缺少此方法,我还没有找到另一种方法来实现此目的...

答案 1 :(得分:0)

您应该使用数据绑定:

<ListView ItemsSource="{Binding List}">
     <ListView.ItemTemplate>
          <DataTemplate>
              <TextBlock Text="{Binding Author}" />
          </DataTemplate>
     </ListView.ItemTemplate>
</List>

列表在视图模型和ObservableCollection<Item>中定义。

项目:

public class Item : INofifyPropertyChanged
{
    private string author; 
    public string Author
    {
        get { return author; }
        set 
        {
            author = value;
            var copy = PropertyChanged; // avoid concurrent changes
            if (copy != null)
                copy(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    ...
}

在互联网上搜索更完整的装订教程......