1

我正在尝试在数据网格中显示字符串列表,但我无法使其正常工作。xml是:

   <DataGrid x:Name="ListGrid" ItemsSource = "{Binding}" AutoGenerateColumns="True">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Title" Binding="{Binding trackTitle}"></DataGridTextColumn>
        </DataGrid.Columns>
   </DataGrid>

Welcome.xaml.cs 看起来像这样,其中 trackTitle 是一个列表

public Welcome()
{
    InitializeComponent();
    ListGrid.DataContext = MainWindow.trackTitle;
}

当我预览它时,我可以看到正确的行数,但没有标题列的数据。还有一个为 Length 生成的列,它显示每个字符串的正确长度。我究竟做错了什么?Title列{Binding trackTitle}的Binding参数不对吗?

4

1 回答 1

1

看这个例子:

看法

<Window x:Class="Example.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel>
        <DataGrid ItemsSource="{Binding Entries}"/>
    </StackPanel>
</Window>

查看代码隐藏

namespace Example
{
    using System.Windows;

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            DataContext = new MainWindowViewModel();
            InitializeComponent();
        }
    }
}

视图模型

namespace Example
{
    using System.Collections.ObjectModel;
    using System.Windows.Controls;

    class MainWindowViewModel
    {
        public ObservableCollection<string> Entries { get; set; }

        public MainWindowViewModel()
        {
            List<string> list = new List<string>() { "Entry 1", "Entry 2", "Entry 3" };
            Entries = new ObservableCollection<string>(list);
        }
    }
}

展示了如何绑定到 ViewModel 中的集合属性的一个很好的示例。尝试将此应用于您的情况。

祝你好运!

于 2013-07-31T23:44:07.037 回答