簡単な問題のような解決策を見つけようとしています。私はListViewを反復して値を取得する方法を見つけようとしています。C#WPF ListViewの項目を繰り返します。
Iは、XAML(簡体字)で次のようになりバインディングとリストビューを有する:私はバインディングを宣言する
<ListView x:Name="MColumnsListXaml" HorizontalAlignment="Left" Height="Auto" Margin="0,42,0,0" VerticalAlignment="Top" Width="Auto">
<ListView.View>
<GridView>
<GridViewColumn Header="First Name" Width="Auto" DisplayMemberBinding="{Binding MColumnName}" />
<GridViewColumn Header="Last Name" Width="Auto" DisplayMemberBinding="{Binding MColumnName2}" />
</GridView>
</ListView.View>
</ListView>
を:
public class MandatoryColumns
{
public string MColumnName { get; set; }
public string MColumnName2 { get; set; }
}
列は、メソッドを呼び出すイベントトリガによって取り込まれます。
private void btnValidateColumns_Click(object sender, RoutedEventArgs e)
{
MandatoryOptionalColumnsList();
}
public void MandatoryOptionalColumnsList()
{
List<MandatoryColumns> MColumnsList = new List<MandatoryColumns>();
MColumnsList.Add(new MandatoryColumns() { MColumnName = "John", MColumnName2 = "Smith" });
MColumnsList.Add(new MandatoryColumns() { MColumnName = "Jason", MColumnName2 = "Bell" });
MColumnsListXaml.ItemsSource = MColumnsList;
}
ここで私はListViewにある情報を取得する必要があります。私は立ち往生した。私の意図は、ListViewで列を抽出し、別のリストとのクロスチェックです。値を取得するには、私は以下のとおりforeach
ループ試してみた:デバッガで
public void test()
{
foreach (var item in MColumnsListXaml.Items)
{
MessageBox.Show(MColumnsListXaml.ToString()); //MColumnsListXaml = {System.Windows.Controls.ListView Items.Count:2}
MessageBox.Show(MColumnsListXaml.Items.ToString()); //MColumnsListXaml.Items = {System.Windows.Controls.ItemCollection}
MessageBox.Show(item.ToString()); //item = {tutorialWpfApplication1.MandatoryColumns}
}
}
を私はアイテムのリターンが{tutorialWpfApplication1.MandatoryColumns}
オブジェクトと私のneeded informationを保持している参照が、私はそれにアクセスする方法を見つけることができません。私はitem
を、それをdynamic
とすることで反復しようとしましたが、 `varやさまざまな解決法の代わりにListViewItem
と宣言しましたが、すべて例外エラーが発生しました。
高速回答ありがとうございますが、結果はまったく同じです。 Itemは '{tutorialWpfApplication1.MandatoryColumns}'を返します。私の投稿のスクリーンショットにあるように。この情報はデバッガの 'item'オブジェクトで見ることができますが、アクセス方法はわかりません。 – Trm
私は答えが早すぎました。私は実際に値にアクセスできます。私はそれがとてもシンプルだったとは信じられない! – Trm
彼はあなたの質問に答えた場合、男に "正解"投票を与えるのを忘れないでください。 –