كيفية يتكرر خلال WPF StackPanel عناصر ثابتة؟
-
07-07-2019 - |
سؤال
وربما من السهل جدا ولكن أواجه مشكلة في هذا الرقم (أيضا جوجل لا يبدو أن يساعد كثيرا).
وكيف يمكنني حلقة من خلال العناصر أعلن ثابت (أي ربط البيانات - يتم تعريف العناصر في XAML)؟ من StackPanel
وأي عن تقديره للمساعدة!
المحلول
هل تعني أطفال StackPanel
على ذلك؟
foreach (var child in stackPanel.Children)
{
//do something with child
}
وهناك حل أكثر عمومية من شأنها أن تعمل بغض النظر عن الأصل سيكون لاستخدام LogicalTreeHelper
أو VisualTreeHelper
، اعتمادا على ما شجرة WPF كنت ترغب في اجتياز:
foreach (var child in LogicalTreeHelper.GetChildren(stackPanel))
{
//do something with child
}
نصائح أخرى
وأنا بس نفس Johnldol، لأنه في حالتي كان لي طفل واحد، وكنت أعرف نوعه. لم أكن أريد أن يحجب قانون بلدي من حلقة لا لزوم لها. لذلك هذا هو كيف وصلت إلى TextBlock داخل ارتباط تشعبي:
var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator();
looper.MoveNext();
TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock;
لا تنتمي إلى StackOverflow