C# 从listview-c中的组合框获取数据#
我想从listbox中的combobox中获取所选项目,并从WPF中的listview中获取列中的id,使用foreach: 此代码用于生成我的组合框项:C# 从listview-c中的组合框获取数据#,c#,wpf,listview,foreach,combobox,C#,Wpf,Listview,Foreach,Combobox,我想从listbox中的combobox中获取所选项目,并从WPF中的listview中获取列中的id,使用foreach: 此代码用于生成我的组合框项: using System.Collections.ObjectModel; using System.ComponentModel; namespace ICF_Form { public enum EnumLimitation { Aucune, Légère, Modéré
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace ICF_Form
{
public enum EnumLimitation
{
Aucune,
Légère,
Modérée,
Forte,
Totale
}
public class Limitation : INotifyPropertyChanged
{
public int _id { get; set; }
private EnumLimitation _enumLimitation = EnumLimitation.Modérée;
public EnumLimitation _limitation
{
get { return _enumLimitation; }
set
{
_enumLimitation = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("Limitation"));
}
}
public Limitation() { }
public Limitation(int id = 0)
{
_id = id;
}
public event PropertyChangedEventHandler PropertyChanged;
}
public class Limitations : ObservableCollection<Limitation>
{
public override string ToString()
{
string s = "";
foreach (var item in this)
{
s += item.ToString() + "\n";
}
return s;
}
}
}
using System;
using System.Windows.Data;
using System.Xml;
namespace ICF_Form
{
class XConverter : IValueConverter
{
/// <summary>
/// Construction du converter
/// </summary>
/// <param name="value"></param>
/// <param name="targetType"></param>
/// <param name="parameter"></param>
/// <param name="culture"></param>
/// <returns></returns>
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string s = null;
if (value is XmlElement)
s = (value as XmlElement).InnerText;
if (value is string)
s = (string)value;
if (s != null)
return Enum.Parse(typeof(EnumLimitation), s);
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}
}
<Window.Resources>
<local:XConverter x:Key="xc" />
<ObjectDataProvider x:Key="limitFromEnum"
MethodName="GetValues"
ObjectType="{x:Type System:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:EnumLimitation" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
This ListView exist for show my ID/Combobox.
<ListView ItemsSource="{Binding Source={StaticResource XmlData},XPath=Limits/*}" Name="MyListView" Grid.Row="2">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Header="ID" Width="80">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Label Content="{Binding XPath=Id}" x:Name="MyID" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Limitation" Width="300">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<ComboBox Name="LimitCombobox"
Width="100"
ItemsSource="{Binding Source={StaticResource limitFromEnum}}"
SelectedValue="{Binding XPath=Limitation, Converter={StaticResource xc}}">
</ComboBox>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
foreach(var limits in MyListView.Items)
{
var id = MyListView.SelectedItems[0].ToString();
Console.WriteLine(id);
}