C# 将枚举绑定到自定义控件上的组合框
我在WPF中有一个自定义控件,需要将其上的组合框绑定到我编写的枚举 在网上搜索时,我发现这是一条路: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
<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:
是公共枚举所在的命名空间。