WPF Binding Combox с другим списком и другим SelectedValue
В моем UserControl ucStep2 у меня есть DataContext объекта Step2InfoData, который имеет несколько свойств наряду с:
private string rockDensUnit;
public string RockDensity_Unit
{
get { return rockDensUnit; }
set
{
if (rockDensUnit != value)
{
rockDensUnit = value;
Changed("RockDensity_Unit");
}
}
}
В моем приложении я должен связать несколько комбоs с различными обычно типами измерений, такими как {кг / м3, г / м3}, {метр, см} и т. д. для таких групп мер. Я имею в виду, несколько комбоs иметь список одинаковых предметов. Поэтому я предпочел создать Class 'из таких списков, которые я могу использовать в нескольких комбинациях. Я создал ComboItems.cs, который содержит все списки элементов, которые мне понадобятся для заполнения раскрывающегося списка.
ComboItems.cs
//**OBJECTS I USE FOR LIST OF IEMS**
// Class for kg, gm
public class KgGmItems
{
public ObservableCollection KgGmList { get; set; }
public KgGmItems()
{
KgGmList = new ObservableCollection();
KgGmList.Add("kg/m3");
KgGmList.Add("gram/cm3");
}
public string ValueSelected { get; set; } // Don't know if this is useful in my case
}
// Class for meter, cm
public class MtCmItems : INotifyPropertyChanged
{
public MtCmItems()
{
Dict = new Dictionary
{
{"meter", "meter"},
{"centimeter", "centimeter"}
};
}
//...
}
XML, т.е. ucStep2 View
Я хочу отобразить элементы ObservableCllection KgGmList из класса KgGmItems и связать выбранное значение с RockDensity_Unit класса Step2InfoData, который связан с этим UserControl.
В вышеприведенном комбо я могу отобразить все элементы в выпадающем списке, также 1-й элемент выбран по умолчанию. Но значение не привязано к RockDensity_Unit; Это'Значение s остается нулевым.
Я хочу, чтобы это произошло в двух направлениях, т.е. когда RockDensity_Unit proeprtiy 'Значение устанавливается программно, значение должно быть выбрано в раскрывающемся списке. Конечно, значение должно присутствовать в списке.
По умолчанию 1-й пункт должен быть выбран.
ОБНОВИТЬ Добавлен DependencyProperty в ucStep2.xaml.cs
public static readonly DependencyProperty RockDensityUnitProperty =
DependencyProperty.Register("RockDensity_Unit", typeof(string), typeof(UserControl),
new FrameworkPropertyMetadata("kg/m3", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
public string RockDensity_Unit
{
get { return this.GetValue(RockDensityUnitProperty) as string; }
set { SetValue(RockDensityUnitProperty, value); }
}
XML
ОШИБКА
Ошибка 1 Ссылка на тип не может найти открытый тип с именем 'ucStep2', Строка 74, Позиция 194. Это относится к выпадающему списку "," после FindAncestor
СОМНЕНИЯ Свойство RockDensity_Unit CLR в Step2InfoData не затрагивается.
Почему код не может найти ucStep2? К вашему сведению, я думаю, что это может быть актуально: