2010-04-14 22 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"/>  

希望幫助 乾杯

相關問題