如何從後面的代碼訪問DataForm
的EditTemplate
中的控件?Silverlight:按名稱訪問DataForm EditTemplate中的元素
以下EditTemplate
適用:
<toolkit:DataForm ItemsSource="{Binding ElementName=someDomainDataSource, Path=Data, Mode=TwoWay}">
<toolkit:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
....
<sdk:DatePicker DisplayDate="{Binding DueDate, Mode=TwoWay}}"
x:Name="dpCustomMaterialDueDate"/>
....
</StackPanel>
</DataTemplate>
</toolkit:DataForm.EditTemplate>
</toolkit:DataForm>
是否可以使用變量名dpCustomMaterialDueDate
代碼隱藏文件訪問DatePicker
?智能感知似乎無法找到它。
還試圖訪問它在DataForm
的ContentLoaded
事件,但沒有運氣,即
dataformPrintOrders.ContentLoaded += (sender, args) =>
{
DatePicker d = (DatePicker)
dataformPrintOrders.FindNameInContent("dpCustomMaterialDuedate");
if (d != null)
{
d.DisplayDateStart = DateTime.Now.AddMonths(-1);
d.DisplayDateEnd = DateTime.Now.AddMonths(12);
}
};
變量d
總是空。
鏈接問題中的FindChild方法起作用。一定要在'EditTemplate'初始化後調用它,例如,我重載了'DataForm'的'ContentLoaded',即'DataForm.ContentLoaded + =(sender,args)=> {FindChild(... ); }' –
Ryan