Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将枚举绑定到自定义控件上的组合框_C#_Wpf_Data Binding_Custom Controls - Fatal编程技术网

C# 将枚举绑定到自定义控件上的组合框

C# 将枚举绑定到自定义控件上的组合框,c#,wpf,data-binding,custom-controls,C#,Wpf,Data Binding,Custom Controls,我在WPF中有一个自定义控件,需要将其上的组合框绑定到我编写的枚举 在网上搜索时,我发现这是一条路: <ObjectDataProvider MethodName="GetDict" ObjectType="{x:Type App:EnumDescriptionValueDict}" x:Key="EnumDescriptionDict"> <ObjectDataProvider.MethodParameters> <x:Type

我在WPF中有一个自定义控件,需要将其上的组合框绑定到我编写的枚举

在网上搜索时,我发现这是一条路:

<ObjectDataProvider
    MethodName="GetDict"
    ObjectType="{x:Type App:EnumDescriptionValueDict}"
    x:Key="EnumDescriptionDict">
  <ObjectDataProvider.MethodParameters>
    <x:Type TypeName="App:Transmission"></x:Type>
  </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>

<ComboBox
      ItemsSource="{Binding Source={StaticResource EnumDescriptionDict}}"
      DisplayMemberPath="Key"
      SelectedValuePath="Value"/>

但是我的控件是XAML

<UserControl x:Class="WpfControlFoo.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d" Width="799" Height="107">

因此,我找不到插入ObjectDataProviderXAML的位置


感谢您的建议:)

您可以按照评论中的建议使用资源

完整XAML:

<UserControl x:Class="WpfControlFoo.UserControl1"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:App="myNamespaceWhereTheEnumIsLocated"
             mc:Ignorable="d" Width="799" Height="107">
<UserControl.Resources>
<ObjectDataProvider
    MethodName="GetDict"
    ObjectType="{x:Type App:EnumDescriptionValueDict}"
    x:Key="EnumDescriptionDict">
  <ObjectDataProvider.MethodParameters>
    <x:Type TypeName="App:Transmission"></x:Type>
  </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</UserControl.Resources>
<ComboBox
      ItemsSource="{Binding Source={StaticResource EnumDescriptionDict}}"
      DisplayMemberPath="Key"
      SelectedValuePath="Value"/>
</UserControl>

使用区域在中定义它。只需添加到@Mat answer,
App:
是公共枚举所在的命名空间。