2009-09-23 6 views
0

Cet exemple est juste pour apprendre ...Comment faire d'un objet existant une source de données dans Microsoft Expression Bend 3?

J'ai démarré un projet dans Visual Studio C#. C'est très simple, il y a une classe Phone qui est instanciée dans le code derrière. Je voudrais ajouter l'interface graphique à l'aide Blend 3.

public class Phone:DependencyObject 
{ 
    public string PhoneMake 
     { 
      get { return (string)GetValue(PhoneMakeProperty); } 
      set { SetValue(PhoneMakeProperty, value); } 
     } 

     public static readonly DependencyProperty PhoneMakeProperty = 
      DependencyProperty.Register("PhoneMake", typeof(string), typeof(Phone)); 

} 

Le code derrière:

public partial class Window1 : Window 
{ 
    public Window1() 
    { 
     InitializeComponent(); 
    } 

    private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     Phone Nokia = new Phone(); 
     Nokia.PhoneMake = "Nokia"; 
    } 
} 

J'importer maintenant ce projet dans Blend 3 Je peux donc ajouter un élément graphique et de se lier à la propriété PhoneMake de l'objet Nokia.

Si je clique sur le bouton Ajouter une source de données en direct, je n'ai que l'option d'instancier un nouvel objet, je ne vois pas comment sélectionner mon objet Nokia. Comment définir cet objet instancié Nokia comme source de données?

Comment définir cet objet instancié Nokia comme source de données?

Est-ce que Blend devrait être capable de faire ceci ou est-ce que j'ai tout mal?

En utilisant Visual Studio C# Express 2008 et 3. Mélanger

Répondre

1

Vous pouvez instancier un objet CLR comme une nouvelle source de données pour la liaison de données dans le volet des données.

Assurez-vous que votre projet avec la classe que vous souhaitez utiliser a été construit.

Cliquez sur l'icône dans l'angle supérieur droit du volet de données et sélectionnez Définir une nouvelle source de données d'objet. Cela vous permettra de choisir n'importe quelle classe CLR dans votre projet (je pense qu'il doit avoir un constructeur defualt pour être éligible). L'objet est enveloppé dans une source de données. Une fois cela fait, l'objet apparaît dans le volet de données et peut être utilisé pour la liaison de données par glisser-déposer ou la boîte de dialogue de liaison de données (via le marqueur de propriété, le petit rectangle à côté de chaque propriété de liaison dans l'inspecteur des biens).

Évidemment, pour créer des listes de données liées, vous voulez probablement que votre objet soit une collection de choses - j'aime utiliser ObervableCollection <> pour cela. Notez que votre objet instancié en tant que source de données est également accessible à partir du code au moment de l'exécution.

Pour trouver l'objet pour lequel vous avez créé la source de données, utilisez FindResource pour rechercher la source de données avec le nom que vous lui avez donné lorsque vous l'avez créé à l'origine.

+0

"Assurez-vous que votre projet avec la classe que vous souhaitez utiliser a été construit." - C'est important, je suivais un tutoriel dans un livre qui ne mentionnait pas cela. – AlistairH

Questions connexes