WP7 uygulamam için, pivotitem'in başlık şablonuna yerleştirdiğim bir tarih denetimi bulmam gerekiyor. Seçili olan PivotItem için bu tarih seçici kontrolüne arkadaki kodda nasıl erişirim?WP7 pivotitem'in iç denetimini bulun
public static T FindName<T>(string name, DependencyObject reference) where T : FrameworkElement
{
if (string.IsNullOrEmpty(name))
{
throw new ArgumentNullException("name");
}
if (reference == null)
{
throw new ArgumentNullException("reference");
}
return FindNameInternal<T>(name, reference);
}
private static T FindNameInternal<T>(string name, DependencyObject reference) where T : FrameworkElement
{
foreach (DependencyObject obj in GetChildren(reference))
{
T elem = obj as T;
if (elem != null && elem.Name == name)
{
return elem;
}
elem = FindNameInternal<T>(name, obj);
if (elem != null)
{
return elem;
}
else
{
//if (obj.GetType().FullName == "System.Windows.Controls.DataField")
// elem = (obj as DataField).Content as T;
if (elem != null && elem.Name == name)
return elem;
}
}
return null;
}
private static IEnumerable<DependencyObject> GetChildren(DependencyObject reference)
{
int childCount = VisualTreeHelper.GetChildrenCount(reference);
if (childCount > 0)
{
for (int i = 0; i < childCount; i++)
{
yield return VisualTreeHelper.GetChild(reference, i);
}
}
}
devcube, lütfen sorudaki güncellenmiş örneğime bakın. Tarih seçicisini bulmak için bu kodu kullanıyorum ama her zaman böyle bir şey kullanarak arama yaptığımda, seçilen PivotItem'i değil, ilk pivotitem'den tarihçiyi alır: RadDatePicker radDatePicker = VisualElementHelper.FindName ("radDatePicker", bu); –
Kullanıyorsam - RadDatePicker radDatePicker = VisualElementHelper.FindName ("radDatePicker", CurrentPivotItem); CurrentPivotItem, PivotControl'ün SelectedItem'i olarak ayarlandığında, boş bir başvuru döndürülür. :( –