1

我想将我的 TextBlock.Text 绑定到 ListBox.SelectedItems.Count,但我发现当我在列表框中多选项目时,我的 TextBlock 不显示任何内容。

我记得这种方式适用于 WPF,但它不再适用于 Windows Store App。

有没有其他方法可以解决这个简单的问题?

   <StackPanel>
        <StackPanel.Resources>
            <local:NumberToTextConverter x:Key="NumToText" />
        </StackPanel.Resources>
        <TextBlock Text="{Binding SelectedItems.Count, ElementName=listBox, Mode=TwoWay, Converter={StaticResource NumToText}}"
                   Height="80" />
        <ListBox x:Name="listBox"
                 SelectionMode="Multiple" />
    </StackPanel>

这是转换器,但在这种情况下不是必需的。

internal class NumberToTextConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string culture)
    {
        if(value != null)
            return ((int)value).ToString();

        return null;
    }

    public object ConvertBack(object value, Type targetType, object parameter, string culture)
    {
        throw new NotImplementedException();
    }

}

我在程序的入口处加载了一些数据。

        List<string> gogoString = new List<string>();

        for (int i = 0; i < 4; i++)
            gogoString.Add(i.ToString());

        listBox.ItemsSource = gogoString;
4

1 回答 1

0

好吧,我迟到了。

WPF 中的ListBox实现INotifyPropertyChanged,但不在 Windows Store 应用程序中。这就是为什么我无法从Windows 应用商店应用程序中ListBox.Items.CountListBox.SelectedItems.Count在 Windows 应用商店应用程序中收到通知。

于 2013-01-23T08:00:21.730 回答