0

ObservableCollection へのデータ バインディングを通じて入力されるリスト ボックスがあります。

<ListBox Height="198" HorizontalAlignment="Left" Margin="12,45,0,0" Name="listBox_users" VerticalAlignment="Top" Width="204" ItemsSource="{Binding}">
            <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding username}" Name="left" Width="50" />
                    <TextBlock Text="{Binding real_name}" Name="right" Width="100" />
                </StackPanel>
            </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

選択されたアイテムのユーザー名だけの文字列値を取得したい。通常、私はこれを複雑なインデックス システムで行ってきましたが、listbox_users.Items または listbox_users.SelectedItem から行う方法が必要です。データバインディングのコンテキストでこれを達成する方法がわかりません。私はまだ概念に非常に慣れていません

4

1 に答える 1

2

データ バインディングを使用して を設定しているためItemTemplate、はテンプレート化された要素ではなく、その項目のListBox.SelectedItemを返します。DataContextItemsSource は、ある種のビュー モデルのリストであると想定しています。ItemsSource が型である例を次に示します。ObservableCollection<UserViewModel>

UserViewModel selectedUser = listBox_user.SelectedItem as UserViewModel;
string username = selectedUser.username;
于 2012-05-25T01:05:29.817 に答える