今日、Silverlightデータフォームコントロールをいじってみると、興味深い問題に遭遇しました。バインドされた編集テンプレート内の特定のコントロールの表示を変更したかったのです。以下の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>
このデータフォームのコンテナへのアクセス方法に応じて、最後の2つのデータフィールドを無効または非表示にしたかったのです。2つのデータ形式を持つ回避策を実行しましたが、これは少し過剰です!編集テンプレート内のこれらのコントロールにアクセスする方法を知っている人はいますか?