Элемент списка множественного выбора, возвращающий system.windows.controls.listboxitem: со значением listboxitem - PullRequest
0 голосов
/ 25 февраля 2019

Выбранные элементы списка возвращают system.windows.controls.listboxitem: ExampleValue.

private void Trade_SelectionChanged(object sender, SelectionChangedEventArgs e)
   {
        TradesSelected.Text = "";
        foreach (object trade in Trade.SelectedItems)
      {
        TradesSelected.Text += (TradesSelected.Text == "" ? "" : ",") + trade.ToString();
      }
    }

Как удалить system.windows.controls.listboxitem: part, поэтому он просто покажет ExampleValue ?

<StackPanel>
                    <TextBox x:Name="TradesSelected" Width="300" Padding="2" ></TextBox>
                    <ListBox SelectionMode="Multiple" x:Name="Trade" Width="300" Height="100" Padding="2" SelectionChanged="Trade_SelectionChanged">
                        <ListBox.ItemContainerStyle>
                            <Style TargetType="ListBoxItem">
                                <Setter Property="IsSelected" Value="{Binding IsSelected}"/>
                            </Style>
                        </ListBox.ItemContainerStyle>
                        <ListBoxItem>ExampleOne</ListBoxItem>
                        <ListBoxItem>ExampleTwo</ListBoxItem>
                        <ListBoxItem>ExampleThree</ListBoxItem>
                    </ListBox>
                </StackPanel>

1 Ответ

0 голосов
/ 25 февраля 2019

Вам необходимо привести ваш trade объект к тому типу, которым он на самом деле является.Метод .ToString() типа object просто возвращает имя типа.См. здесь .

Также, вероятно, тип, которым на самом деле является торговый объект, имеет свойство / поле / метод, который возвращает строковое значение, которое вы действительно хотите показать.

TradesSelected.Text += (TradesSelected.Text == "" ? "" : ",") + (trade as ListBoxItem).Content.ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...