У меня проблема с добавлением события Expanded в мои Expanders.У меня есть экспандеры на моем Окне, и я хочу получить эффект, когда я расширяю свой экспандер, все остальные отключатся.Я пишу функции, которые позволяют мне делать это, и это работает правильно.Проблема в том, что у меня 96 расширителей, я не хочу добавлять 96 событий для Expand и 96 событий для Collapse, поэтому я подумал, что могу добавить это программно.
посмотрите на код:
private void InitExpanders()
{
var expanders = GetExpanders(); // List<Expander> - list of expanders
for (int i = 0; i < expanders.Count; i++)
{
if (i % 6 == 1)
{
expanders[i - 1].Expanded += new RoutedEventHandler(delegate(object sender, RoutedEventArgs args)
{
DisableBigExpanders(1); // problem is here!
});
}
}
}
этот код работает нормально, но для каждого параметра функции расширителя будет 1. Я попытался добавить целое число и увеличить его, но это не сработает.
private void InitExpanders()
{
var expanders = GetExpanders();
int x = 0;
for (int i = 0; i < expanders.Count; i++)
{
if (i % 6 == 1)
{
expanders[i - 1].Expanded += new RoutedEventHandler(delegate(object sender, RoutedEventArgs args)
{
DisableBigExpanders(x);
});
x++;
}
}
}
Спасибо за все ответы.