Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Binding ComboBox to enum
Message
De
18/12/2012 08:48:42
 
 
À
18/12/2012 03:44:30
Information générale
Forum:
ASP.NET
Catégorie:
Windows Presentation Foundation (WPF)
Divers
Thread ID:
01559922
Message ID:
01559996
Vues:
62
Viv,

I'm trying to understand this one:

>Or using ObjectDataProvider:
>http://www.codeproject.com/Articles/29495/Binding-and-Using-Friendly-Enums-in-WPF
>

I hope you can help me work it out.

I have defined my enum in my business object class:
namespace SamaanSystems.IBC.Business
{
	/// <summary>
	/// Summary description for Rate.
	/// </summary>
	public partial class Rate
	{
         public enum RateType : int
         {
            Standard = 1,
            Mail = 2,
            ZipX = 3
         }
	}
}
I am trying to have this enum be used to display the possible options on my Rates form in a combo, so the user will see Standard, Mail and ZipX as the items in the combo list and the values of 1, 2 and 3 respectively will be bound to a property of an entity object. The field is rat_type.

I've stuck this code in my RatesWindow.xaml:
    <ObjectDataProvider x:Key="rateTypes"
                    MethodName="GetValues" 
                    ObjectType="{x:Type sys:Enum}">
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="local:RateTypes" />
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
but I get a squiggly blue underline under x:Key="rateTypes" with this error:

Key attribute can be used only on a tag contained in an IDictionary type property

This also cause almost the entire rest of my xaml to be squiggly underlined in blue with this error:

The property 'Content' is set more than once.

So I guess I'm putting this in the wrong place. This is the first bit of my xaml:
<local:ABusinessWindow
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:mmwpf="clr-namespace:OakLeaf.MM.Main.WPF;assembly=OakLeaf.MM2010.WPF"
	xmlns:d="http://schemas.microsoft.com/expression/blend/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
	xmlns:Custom="http://schemas.microsoft.com/wpf/2008/toolkit"
	xmlns:SamaanSystems_IBC_Business="clr-namespace:SamaanSystems.IBC.Business;assembly=SamaanSystems.IBC.Business"
	xmlns:local="clr-namespace:SamaanSystems.IBC.WPF"
    x:Class="SamaanSystems.IBC.WPF.RatesWindow"
	x:Name="Window"
	Title="Rates"
	Width="550" Height="450" AllowsTransparency="False" Background="#FFFFFFFF" WindowStartupLocation="CenterScreen" >

    <ObjectDataProvider x:Key="rateTypes"
                    MethodName="GetValues" 
                    ObjectType="{x:Type sys:Enum}">
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="local:RateTypes" />
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider> 
    
    <mmwpf:mmBusinessWindow.DataContext>
        <SamaanSystems_IBC_Business:RateEntity/>
    </mmwpf:mmBusinessWindow.DataContext>

    <Border>
        <Border.Background>
 ...
Can you explain this a bit for me and tell me where the code should be going?

Thanks very much!
Frank.

Frank Cazabon
Samaan Systems Ltd.
www.samaansystems.com
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform