2010-09-01 11 views
0

Veuillez excuser cette question novice, mais je suis en train de monter sur Silverlight et MVVM Light. J'ai créé une vue appelée MyView.xaml et un MyViewModel.cs correspondant.Comment empêcher la restitution d'une propriété de classe de base dans un DataForm?

MyView.xaml

<navigation:Page x:Class="Dashboard.Views.MyView" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:vm="clr-namespace:Dashboard.ViewModels" 
     xmlns:controls="clr-namespace:Dashboard.Controls" 
     mc:Ignorable="d" 
     xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" 
     d:DesignWidth="640" d:DesignHeight="480" 
     Title="MyView Page" xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"> 

<navigation:Page.Resources> 
    <vm:MyViewModel x:Key="MyViewModel" /> 
</navigation:Page.Resources> 

<navigation:Page.DataContext> 
    <Binding Source="{StaticResource MyViewModel}"/> 
</navigation:Page.DataContext> 

<Grid x:Name="LayoutRoot"> 
    <StackPanel Orientation="Vertical" Style="{StaticResource LoginControlsStackPanelStyle}" HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <toolkit:DataForm Name="dataForm1" CurrentItem="{Binding}"/> 
    </StackPanel> 
</Grid> 

MyViewModel.cs

namespace Dashboard.ViewModels 
{ 
    public class MyViewModel : ViewModelBase 
    { 
     public string FirstName { get; set; } 
     public string LastName { get; set; } 
    } 
} 

Quand je lance le projet, ma forme rend la propriété IsInDesignMode. Je ne veux évidemment pas ça. Comment puis-je empêcher la propriété de classe de base de rendre dans le formulaire de données?

Merci.

Andrew

Répondre

0

Si vous ne souhaitez que pour éviter un dépôt d'apparaître, vous pouvez vous abonner à l'événement AutoGeneratingField et définissez le drapeau Annuler sur les événements args à true. Si vous souhaitez implémenter votre propre mise en page, vous pouvez définir l'indicateur AutoGeneratingFields sur false et fournir vos propres modèles.

+0

Merci, Kyle. L'abonnement à l'événement AutoGeneratingField a bien fonctionné. – Andrew