在代码中将枚举绑定到XAML

时间:2018-07-21 05:43:21

标签: c# xaml

public class UserServiceImpl implements UserService {  }

我想在代码中将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); } 绑定到XAML。但是我不知道该怎么做。而且我不知道转换器(Enum <-> String)的名称。我只知道这是标准转换器。

问题:

  1. 我该怎么做呢?
  2. 在哪里可以找到所有标准转换器的列表?

1 个答案:

答案 0 :(得分:0)

将绑定的Source设置为要绑定的对象。如果对象实现INotifyPropertyChanged,则使用Path来侦听特定属性,并在设置属性时引发属性更改事件。

我不确定是否有标准的枚举到字符串转换器,尽管您可以在绑定上使用StringFormat或实现自定义转换器。您将DependencyProperty绑定到其中会进行一些自动类型转换,因此您甚至不需要它。

您可以在此处找到作为接口派生类型的“标准”转换器列表。https://docs.microsoft.com/en-gb/dotnet/api/system.windows.data.ivalueconverter?view=netframework-4.7.2

您还需要使用SetBindingDependencyProperty的{​​{1}}上实际设置绑定。参见https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/how-to-create-a-binding-in-code