PDA

View Full Version : listbox and check box



taha mahdi
پنج شنبه 11 شهریور 1389, 13:50 عصر
با سلام
داخل listbox اي که ايجاد کرده ام ايتم هاي button وجود دارد که داخل اين button نيز check box اي وجود دارد حالا مي خواهم هر گاه اين check box تيک خورد selected اين listbox مقداري برابر سطر button بگيرد که براي حذف آن از اين خاصيت استفاده کنم
چطور اين کار را انجام دهم
باتشکر

taha mahdi
پنج شنبه 11 شهریور 1389, 19:20 عصر
بهتر است سوالم را بهتر بپرسم
چطور شماره ی سطر شیئ که در داخل یک listbox وجود دارد و روی آن کلیک می شود را بدست آورم البته غیر از selectedindex

مهدی فرزاد
جمعه 12 شهریور 1389, 16:32 عصر
بهتر است سوالم را بهتر بپرسم
چطور شماره ی سطر شیئ که در داخل یک listbox وجود دارد و روی آن کلیک می شود را بدست آورم البته غیر از selectedindex
سلام
چرا غیر از selectedindex مگه مشکلش چیه؟؟:متفکر:

mahdi7s
شنبه 13 شهریور 1389, 01:44 صبح
داخل listbox اي که ايجاد کرده ام ايتم هاي button وجود دارد که داخل اين button نيز check box اي وجود دارد حالا مي خواهم هر گاه اين check box تيک خورد selected اين listbox مقداري برابر سطر button بگيرد که براي حذف آن از اين خاصيت استفاده کنم
چطور اين کار را انجام دهم
درست است در این صورت SelectedIndex جوابی را که انتظارش را دارید نمی دهد

راه حل:

<ListBox ButtonBase.Click="ListBox_Click">
<Border Padding="5">
<Button MinWidth="50">
<StackPanel Orientation="Horizontal">
<TextBlock Text="1 "></TextBlock>
<CheckBox Tag="0"/>
</StackPanel>
</Button>
</Border>
<Button MinWidth="50">
<StackPanel Orientation="Horizontal">
<TextBlock Text="2 "></TextBlock>
<CheckBox Tag="1"/>
</StackPanel>
</Button>
<Button MinWidth="50">
<StackPanel Orientation="Horizontal">
<TextBlock Text="3 "></TextBlock>
<CheckBox Tag="2"/>
</StackPanel>
</Button>
</ListBox>


private void ListBox_Click(object sender, RoutedEventArgs e)
{
var chb = e.OriginalSource as CheckBox;
if (chb != null)
{
var index = 0;
if (int.TryParse(chb.Tag.ToString(), out index))
{
MessageBox.Show("Selected Index : " + index.ToString());
}
}
}

البته اگر آیتم ها دینامیک هستند باید index درست را به خصیصه Tag بایند کنید

موفق باشید