【发布时间】:2015-05-14 13:14:28
【问题描述】:
我在 WPF 中有一个 ListBox,它里面有 CheckBox 项目。我在 XAML 代码隐藏中使用以下代码拆分选中的复选框。
StringBuilder sbMonths = new StringBuilder();
StringBuilder sbMonthNames = new StringBuilder();
string months;
string monthNames;
foreach (var item in ListBox.Items)
{
if (item is CheckBox)
{
var chk = item as CheckBox;
if ((bool)chk.IsChecked)
{
sbMonths.Append(chk.Tag);
sbMonths.Append(',');
sbMonthNames.Append(chk.Content.ToString());
sbMonthNames.Append('-');
}
}
}
months = sbMonths.ToString();
monthNames = sbMonthNames.ToString();
int lastIndexOfMonths = months.LastIndexOf(',');
int lastIndexOfMonthNames = monthNames.LastIndexOf('-');
if (lastIndexOfMonths > -1)
{
months = months.Remove(lastIndexOfMonths);
monthNames = monthNames.Remove(lastIndexOfMonthNames);
.... I do more here
}
问题是我不知道如何使用 MVVM 来做到这一点。您能提供一些解决方案吗?
XAML:
<ListBox Name="ListBox" HorizontalAlignment="Left" Height="149" Margin="23,47,0,0" VerticalAlignment="Top" Width="210">
<ComboBoxItem Content="-- Ay Seçiniz --"/>
<CheckBox Content="Ocak" Tag="1"/>
<CheckBox Content="Şubat" Tag="2"/>
<CheckBox Content="Mart" Tag="3"/>
<CheckBox Content="Nisan" Tag="4"/>
<CheckBox Content="Mayıs" Tag="5"/>
<CheckBox Content="Haziran" Tag="6"/>
<CheckBox Content="Temmuz" Tag="7"/>
<CheckBox Content="Ağustos" Tag="8"/>
<CheckBox Content="Eylül" Tag="9"/>
<CheckBox Content="Ekim" Tag="10"/>
<CheckBox Content="Kasım" Tag="11"/>
<CheckBox Content="Aralık" Tag="12"/>
</ListBox>
【问题讨论】:
-
@Kix DuckDuckGo?该死的直。没有人知道我们正在寻找如何在 WPF MVVM 的列表框中使用复选框。