public enum Type
{
One = 1,
Two = 2,
Three = 3
}
public void Method()
{
Type type = Type.One;
var binding = new Binding(type - ???);
binding.Converter = ?????;
var child = new FrameworkElementFactory(typeof(ComboBox));
child.SetValue(ComboBox.ItemsSourceProperty, Enum.GetValues(typeof(Type)));
child.SetValue(ComboBox.SelectedValueProperty, binding);
}
Я хочу привязать type к XAML в коде. Но я не знаю, как правильно это сделать. И я не знаю имени конвертера (Enum <-> String). Знаю только, что это стандартный конвертер.
Вопросов:
@Richardissimo Я должен сделать это в коде, это задача. Как это сделать в XAML - я знаю. Но как это сделать в коде ... Ничего не нашел в интернете. :(





Установите Source привязки к объекту, к которому вы хотите привязаться. Если объект реализует INotifyPropertyChanged, используйте Path для прослушивания определенного свойства и инициируйте событие изменения свойства, когда оно установлено.
Я не уверен, что существует стандартный преобразователь перечисления в строку, хотя вы можете использовать StringFormat для привязки или реализовать собственный преобразователь. Существует некоторое автоматическое преобразование типов на основе DependencyProperty, к которому вы это привязываете, поэтому он может вам даже не понадобиться.
Вы можете найти здесь список "стандартных" конвертеров как производных типов интерфейса. Их немного. https://docs.microsoft.com/en-gb/dotnet/api/system.windows.data.ivalueconverter?view=netframework-4.7.2
Вам также необходимо использовать SetBinding для фактической установки привязки к DependencyPropertyDependencyObject. См. https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/how-to-create-a-binding-in-code
Зачем это делать в коде? Так проще с XAML stackoverflow.com/questions/14279602/…