c# - 更改或访问 Silverlight 数据表单编辑模板中的控件

标签 c# silverlight silverlight-3.0 dataform

今天我在使用 Silverlight 数据表单控件时遇到了一个有趣的问题。我想更改绑定(bind)编辑模板内特定控件的可见性。请参阅下面的 xaml。

<df:DataForm x:Name="NoteFormEdit" ItemsSource="{Binding Mode=OneWay}" AutoGenerateFields="True"
                AutoEdit="True" AutoCommit="False"
                CommitButtonContent="Save"
                CancelButtonContent="Cancel"               
                CommandButtonsVisibility="Commit"
                LabelPosition="Top" ScrollViewer.VerticalScrollBarVisibility="Disabled"
                EditEnded="NoteForm_EditEnded">
        <df:DataForm.EditTemplate>
            <DataTemplate>
                <StackPanel>
                    <df:DataField>
                        <TextBox Text="{Binding Title, Mode=TwoWay}"/>
                    </df:DataField>

                    <df:DataField>
                        <TextBox Text="{Binding Description, Mode=TwoWay}" AcceptsReturn="True" HorizontalScrollBarVisibility="Auto"
                                 VerticalScrollBarVisibility="Auto" Height="" TextWrapping="Wrap" SizeChanged="TextBox_SizeChanged"/>
                    </df:DataField>

                    <df:DataField>
                        <TextBlock Text="{Binding Username}" x:Name="tbUsername"/>
                    </df:DataField>

                    <df:DataField>
                        <TextBlock Text="{Binding DateCreated, Converter={StaticResource DateConverter}}" x:Name="tbDateCreated"/>
                    </df:DataField>
                </StackPanel>
            </DataTemplate>
        </df:DataForm.EditTemplate>
    </df:DataForm>

我想根据如何访问此数据表单的容器来禁用或隐藏最后两个数据字段。我做了一个有两种数据形式的工作,但这有点太多了!有谁知道如何访问编辑模板中的这些控件?

最佳答案

可能还有另一个答案,但我所做的是为我的数据类创建一个分部类,并在分部中添加一个返回可见性枚举的属性,然后在绑定(bind)到之前在后面的代码中设置可见性控制。

 public partial class MyDataClass
 {
    public Visibility IsVisible { get; set; }

 }

在我的实际 XAML 中,我将绑定(bind)到控件可见性属性,如下所示:

   <df:DataField>    
   <TextBlock  Visibility="{Binding  IsVisible }" Text="{Binding DateCreated, Converter={StaticResource DateConverter}}" x:Name="tbDateCreated"/>    

希望有帮助 干杯

关于c# - 更改或访问 Silverlight 数据表单编辑模板中的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2638915/

相关文章:

c# - 相当于 Document.Write() 的脚本

c# - 我可以将 Int.TryParse 更改为在解析不成功时返回 -1 而不是零吗?

wpf - 在 ViewModel 之间共享状态

silverlight - 一个应用程序中的多个浏览器外应用程序

silverlight-3.0 - Silverlight 列表框项目样式

c# - System.Configuration.ConfigurationSettings.AppSettings 在生产中不可访问

c# - 防止事件处理程序循环

silverlight - 使用 Windows 8/WinRT 在 Metro 应用中 PInvoke

silverlight - 从IsolatedStorageFileStream 构造函数抛出的IsolatedStorage_Operation_ISFS 错误是什么意思?

c# - "Dialogs must be user-initiated."与 Silverlight 3 中的 SaveFileDialog