سؤال

وربما من السهل جدا ولكن أواجه مشكلة في هذا الرقم (أيضا جوجل لا يبدو أن يساعد كثيرا).

وكيف يمكنني حلقة من خلال العناصر أعلن ثابت (أي ربط البيانات - يتم تعريف العناصر في 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;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top