silverlight - 数据表单字段不会出现

标签 silverlight silverlight-3.0 dataform

我正在尝试学习如何使用 Silverlight 3 DataForm 控件,因为我需要在 XAML 代码中自己定义 DataForm 字段,也就是说,我不想使用 AutoGenerateFields属性(property)。

我的问题是:当 AutoGenerateFields 设置为 true 时,数据表单工作正常,但是当我创建一个 DataForm 并手动设置字段并运行应用程序时,我得到的只是一个空的空白矩形,我的表单及其字段应该在其中。

我创建了一个空白的 Silverligh 导航应用程序来对此进行测试,下面是 Home.xaml 页面的代码:



    <堆栈面板>

        <!-- 这是行不通的。它呈现一个空白矩形 -->
        
            
                <数据模板>
                    
                        
                            
                        
                        
                            
                        
                        
                            
                        
                    
                
            
        

        <!-- 这行得通。 -->
        

    


为了使第二个 DataForm 工作,我简单地创建了一个 Person 类,并将以下内容放入 Home.xaml.cs:


protected override void OnNavigatedTo(NavigationEventArgs e)
{
    Person client = new Person { Age = 10, DateOfBirth = new DateTime(1980, 10, 20), FirstName = "John", LastName = "Doe" };
    DataForm2.CurrentItem = client;
}

你可以看到当我运行应用程序时发生了什么:

screenshot

有人知道怎么回事吗?提前谢谢你。

最佳答案

为了让某些东西出现,我必须添加:

        DataForm.CurrentItem = client;

代码。

这只显示了三个没有标签的文本框和条目“Test1”、“Test2”和“Test3”。这是您所期待的吗?

Silverlight Toolkit示例页面有一个模板驱动数据表单的示例,它的 XAML 如下所示:

        <dataform:DataForm x:Name="dataForm" ItemsSource="{Binding}" HorizontalAlignment="Left" MinWidth="400" MaxWidth="500" Margin="4" Grid.Column="1">
            <dataform:DataForm.EditTemplate>
                <DataTemplate>
                    <StackPanel>
                        <dataform:DataField>
                            <TextBox Text="{Binding FirstName, Mode=TwoWay}" />
                        </dataform:DataField>
                        <dataform:DataField>
                            <TextBox Text="{Binding Email, Mode=TwoWay}" />
                        </dataform:DataField>
                        <dataform:DataField>
                            <TextBox Text="{Binding Phone, Mode=TwoWay}" />
                        </dataform:DataField>
                        <dataform:DataField Label="Calendar">
                            <controls:Calendar></controls:Calendar>
                        </dataform:DataField>
                    </StackPanel>
                </DataTemplate>
            </dataform:DataForm.EditTemplate>
        </dataform:DataForm>

还有一行:

        DataContext = Contact.People;

在后面的代码中。 (据我所知,类 People 是在别处定义的)

关于silverlight - 数据表单字段不会出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2067070/

相关文章:

silverlight - 在 Silverlight 3/4 中加载 3D 对象

Silverlight 3 - 我可以在另一个应用程序中运行浏览器外

Silverlight使用MVVM将集合绑定(bind)到DataForm中的Combobox

silverlight-3.0 - Silverlight 3 DataForm,如何显示/隐藏字段

silverlight-4.0 - Silverlight 4 覆盖 DataForm Autogenerate 以插入绑定(bind)到转换器的组合框

xaml - 在内部使用 ScrollViewer 捕获 ManipulationDelta 事件(Windows Phone 8.1)

c# - 在 Silverlight 中将字节数组转换为字符串?

c# - 在 Silverlight 中打开文件夹对话框?

当 IsEnabled=False 时 Silverlight Toolkit Timepicker 控件不会出现视觉重影

c# - 如何使用 ExpressionMediaPlayer 控件在 Silverlight 中从 Web 服务器流式传输视频?