3

リストビューを文字列の ObservableCollection にバインドしています。

Xaml:

<ListView Margin="4" Name="LvRiserList" DockPanel.Dock="Top" ItemsSource="{Binding GetAllRiserTags, UpdateSourceTrigger=PropertyChanged}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" HorizontalAlignment="Stretch" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

コード:

public ObservableCollection<string> GetAllRiserTags
{
    get
    {
        var riserTags = new ObservableCollection<string>();
        foreach (var riser in RiserCollection)
        {
            riserTags.Add(riser.Tag);
        }
        return riserTags;
    }
}

ボタンがクリックされると、リストは 1 つずつ読み込まれ、各タグにはデフォルト値の「空」が与えられます。

リストは期待どおりにリストに入力されますが、項目の 1 つを選択しようとすると問題が発生します。最初の 1 つだけが選択されます。タグに異なる (一意の) デフォルト名を付けると、期待どおりに選択されます。

なぜこのように振る舞うのか、何か考えはありますか?

4

2 に答える 2

0

ListView.ItemTemplate を削除して、試してみてください。

<ListView Margin="4" Name="LvRiserList" DockPanel.Dock="Top" ItemsSource="{Binding GetAllRiserTags, UpdateSourceTrigger=PropertyChanged}">
</ListView>
于 2012-12-14T20:44:51.230 に答える
0

id および value プロパティを含むカスタム クラスを作成します。GetHash および Equals 関数を上書きします。Viewmodel で ID をカウントするか、一意の値を指定します。

value プロパティにバインドします。

カスタムクラスを使用しない場合、同じ値の文字列を使用すると、常にこの問題が発生します:)

于 2012-12-14T21:08:42.517 に答える