2010-04-14 37 views
2

当玩弄Silverlight数据表单控件时,我今天遇到了一个有趣的问题。我想更改绑定编辑模板中特定控件的可见性..请参阅下面的xaml。更改或访问Silverlight数据表单中的控件编辑模板

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

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

回答

3

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

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

} 

在我实际的XAML我会绑定到控件visibility属性是这样的:

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

希望帮助 干杯

相关问题