如何防止基类属性在DataForm中呈现?

时间:2010-09-01 13:44:34

标签: silverlight mvvm-light wcf-ria-services

请原谅这个新手问题,但我正在加强Silverlight和MVVM Light。我创建了一个名为MyView.xaml的视图和一个相应的MyViewModel.cs。

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; }
    }
}

当我运行项目时,我的表单呈现IsInDesignMode属性。我显然不想要这个。如何防止基类属性在数据表单中呈现?

感谢。

安德鲁

1 个答案:

答案 0 :(得分:0)

如果您只想阻止一个字段显示,您可以订阅AutoGeneratingField事件并将events args上的Cancel标志设置为true。如果要实现自己的布局,可以将AutoGeneratingFields标志设置为false并提供自己的模板。