いくつかの列を持つリストビューと、新しいウィンドウをロードしてデータを入力し、データをリストビューに送信するボタンがあります。以下にスクリーンショットがあります。 http://img16.imageshack.us/img16/2597/databinding.jpg
追加ボタンがクリックされたときに、リストビューに1つのアイテムのみを追加しようとしています
<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; }
}
ステップボタンのコードは以下です。currentStep はステップ項目のリストです
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);
}
このコードは、データバインディングを機能させようとしていじっていたので、おそらく少し混乱しています。