سؤال

هل هناك طريقة لتعطيل كافة ولكن العناصر خ الأولى من برنامج الأغذية العالمي تحرير وسرد من الوصول إلى خصائص بنودها "عبر مؤشر؟

وتحرير:

 ComboBoxItem DiffieHellmanItem = (ComboBoxItem)comboboxName.ItemContainerGenerator.ContainerFromIndex(i));

والأعمال

هل كانت مفيدة؟

المحلول

وتحرير: يبدو أنك وجدت طريقة للحصول على ComboBoxItems. قد ترغب أيضا أن ننظر إلى ItemContainerStyle ومعرفة ما إذا كان هناك بعض ربط البيانات يمكنك الاستفادة من (إذا كانت مادتك خاصية البلوتوث أو شيئا من هذا القبيل).

ولكن، وهذا يتوقف على كيف تقومون به ربط البيانات الخاصة بك، قد تكون قادرة على عرض البنود الخاصة بك "المعوقين" في فرشاة مختلفة، التعتيم، الخ باستخدام DataTemplates. بيا Stollnitz لديه وظيفة جيدة حول ذلك هنا .

وشيء واحد قد ترغب في النظر من وجهة نظر UX هو لماذا كنت تريد أن تجعل منهم المعوقين في مقابل خفية. أن هناك نوعا من التكتيك الكشف التدريجي التي يمكنك الاستفادة منها ليكن لديك تحرير وسرد مليئة أشياء لا يمكن للمستخدم النقر؟

نصائح أخرى

ويمكنك ضبط ItemContainerStyle على منسدل. من مزيج - إنشاء نسخة الحالية للحصول على هذا القالب. في القالب يمكنك تعيين الخاصية ISENABLED باعتبارها واضعة وربط انها قيمة إلى ما تريد ربط.

<Style x:Key="ComboBoxItemStyle1" TargetType="{x:Type ComboBoxItem}">
            ...
            <Setter Property="IsEnabled" Value="{Binding Active}"/>
            ...
        </Style>

وأنا لا أعرف من وسيلة في الواقع لتعطيل العناصر في تحرير وسرد، ولكن يجب أن تكون قادرا على إضافة منطق الحدث OnClick الخاصة بك والتي سوف تحقق اذا كان مؤشر العنصر المحدد هو> = x و عدم السماح مهما العملية وطلب القائم على ذلك.

وIMHO، وأفضل نهج هو استخدام DataTriggers

<ComboBox.ItemContainerStyle>
    <Style TargetType="ComboBoxItem">
        <Style.Triggers>
            <DataTrigger *insert condition*>
                <Setter Property="IsEnabled" Value="False"/>
            </DataTrigger>
        </Style.Triggers>
     </Style>
</ComboBox.ItemContainerStyle>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top