У меня есть сложный объект Article со списком Locations типа ArticleLocation. Мне нужно отобразить эти местоположения в выпадающем списке внутри GridView:
public class Article : INotifyPropertyChanged
{
private int sapNumber;
private string descript;
private ObservableCollection<ArticleLocation> locations;
private ArticleLocation selectedLocation;
public int SAPNumber
{
get => sapNumber;
set
{
if (sapNumber != value)
{
sapNumber = value;
RaisePropertyChanged("SAPNumber");
}
}
}
public string Description
{
get => descript;
set
{
if (descript == null || !descript.Equals(value))
{
descript = value;
RaisePropertyChanged("Description");
}
}
}
internal ObservableCollection<ArticleLocation> Locations { get => locations; set => locations = value; }
internal ArticleLocation SelectedLocation { get => selectedLocation; set => selectedLocation = value; }
}
Мне нужно отобразить местоположение, хранящееся так:
class ArticleLocation : INotifyPropertyChanged
{
private string location;
private double available;
public string Location { get => location; set => location = value; }
public double Available { get => available; set => available = value; }
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
}
Ящик со списком, как он у меня сейчас:
<telerik:RadComboBox ItemsSource="{Binding Locations}" DisplayMemberPath="Location" SelectedItem="{Binding SelectedLocation}" SelectionChanged="RadComboBox_SelectionChanged"/>
Я не знаю, как получить местоположение для отображения, чтобы его можно было выбрать. Единственная альтернатива, о которой я могу подумать, - это сохранить имя местоположения и доступные элементы в отдельных списках ...
Не то чтобы это имело большое значение, но я использую объекты telerik в форме wpf.