WPF 列表从列表查看数据绑定

本文关键字:列表 数据绑定 WPF | 更新日期: 2023-09-27 18:34:16

>我有一个包含几列的列表视图和一个按钮,该按钮加载一个新窗口来输入数据并将数据提交到列表视图。下面有一个截图。http://img16.imageshack.us/img16/2597/databinding.jpg

单击添加按钮时,我只尝试将一个项目添加到列表视图

<ListView x:Name="StepsListView" Height="100" ItemsSource="{Binding Source currentStep}">
       <ListView.View>
          <GridView>
            <GridViewColumn Header="Priority" Width="50" DisplayMemberBinding="{Binding Path=stepPriority}"></GridViewColumn>
            <GridViewColumn Header="Description" Width="185" DisplayMemberBinding="{Binding Path=stepDescription}"></GridViewColumn>
            <GridViewColumn Header="Time" Width="50" DisplayMemberBinding="{Binding Path=stepTime}"></GridViewColumn>
            <GridViewColumn Header="Dep" Width="50" DisplayMemberBinding="{Binding Path=stepDependency}"></GridViewColumn>
            <GridViewColumn Header="Type" Width="100" DisplayMemberBinding="{Binding Path=stepType}"></GridViewColumn>
          </GridView>
       </ListView.View>
</ListView>

这是我的 XAML 代码。请注意,我是WPF的新手,我使用的"绑定"代码只是来自Web上的小片段。我已经尝试了几种不同的方法来做到这一点,我现在很困惑。

我有一个名为 StepItem 的数据对象。优先级应为列表视图中的项目编号,因此第一项的优先级为 1。

public class StepItem
{
    public string stepDescription { get; set; }
    public int stepTime { get; set; }
    public int stepDependency { get; set; }
    public int stepPriority { get; set; }
    public string stepType { get; set; }
}

步骤按钮代码如下。 当前步骤是步骤项的列表

 private void button1_Click(object sender, RoutedEventArgs e)
    {
        Methods start = new Methods();
        start.currentStep = new List<StepItem>();
        string dependency = dependencyTextBox.Text;
        string time = TimeTextbox.Text;
        string priority = priorityTextbox.Text;
        start.currentStep.Add(new StepItem()
        {
            stepDescription = DescriptionTextBox.Text,
            stepDependency = Convert.ToInt32(dependency),
            stepTime = Convert.ToInt32(time),
            stepType = typeTextBox.Text,
            stepPriority = Convert.ToInt32(priority)
        });
        NewRecipe n = new NewRecipe();
        n.addSteptoList(start.currentStep);
    }

然后我需要一些代码将项目添加到列表视图中,现在我已经有了

    public void addSteptoList(List<StepItem> item)
    {
        StepsListView.Items.Add(item);
    }

这段代码现在可能有点混乱,因为我一直在试图让数据绑定工作。

WPF 列表从列表查看数据绑定

> YOu 绑定到 ListView

{Binding Source currentStep}

您需要使当前步骤成为公共属性

删除

public void addSteptoList(List<StepItem> item)
    {
        StepsListView.Items.Add(item);
    }

如果您在按钮中新建当前步骤,则所有项目都将丢失,并且只有最后一个项目

对于数据上下文

this.datacontext = this