powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как правильно программным образом назначить выбранный объект в ListBox
10 сообщений из 10, страница 1 из 1
Как правильно программным образом назначить выбранный объект в ListBox
    #39064573
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно программным образом назначить выбранный объект в обычном ListBox,
если известно только SelectedValue которое надо выбрать.
Ну не заниматься же перебором значений SelectedIndex в цикле.
Должно быть более красивое средство.
SelectedValue у меня целое число.
...
Рейтинг: 0 / 0
Как правильно программным образом назначить выбранный объект в ListBox
    #39064675
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВолодимирКак правильно программным образом назначить выбранный объект в обычном ListBox,
если известно только SelectedValue которое надо выбрать.
Ну не заниматься же перебором значений SelectedIndex в цикле.
Должно быть более красивое средство.
SelectedValue у меня целое число.
ListBox.SelectedItem
ListBox.SelectedItems
ListBoxView.IsSelect
...
Рейтинг: 0 / 0
Как правильно программным образом назначить выбранный объект в ListBox
    #39065822
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу связи между вопросом и ответом.
Вопрос в том, как найти ListBox.SelectedItem
зная ListBox.SelectedValue
не используя цикл перебора строк из DataReader.
...
Рейтинг: 0 / 0
Как правильно программным образом назначить выбранный объект в ListBox
    #39065860
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как это я сразу не догадался
вот моя же строка
Код: c#
1.
private DataTable _dataSource = new DataTable( );


Наверно надо использовать метод Select
...
Рейтинг: 0 / 0
Как правильно программным образом назначить выбранный объект в ListBox
    #39065969
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблему удалось решить добавив ещё одну колонку в запрос данных
Теперь запрос такой
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
     
      SqlConnection connection = new SqlConnection( ConfigurationManager.ConnectionStrings[ "DSRFID_Provider" ].ConnectionString );
      SqlCommand command = new SqlCommand(
          "SELECT CAST(ROW_NUMBER() OVER(ORDER BY idn ASC ) as int) as id
            , idn, name_R, dbWtPowerEf, dbCable, dbAntenn
           from tb_Readers2"
        , connection );
      connection.Open( );
      SqlDataReader reader = command.ExecuteReader( );
      _dataSource.Load( reader );
      reader.Close( );
      connection.Close( );



а SelectedIndex я нахожу так
Код: c#
1.
2.
3.
       int id= (int)_dataSource.Select( "idn = " + idn.ToString( ) )[0][0];
        IdnSelected = id;
        listViewMain.SelectedIndex = IdnSelected-1;



Однако я не уверен, что моё решение лучшее,
неужели у WPF нет своих средств для выделения строки, зная только SelectedValue ???
...
Рейтинг: 0 / 0
Как правильно программным образом назначить выбранный объект в ListBox
    #39066172
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Володимир неужели у WPF нет своих средств для выделения строки, зная только SelectedValue ???

Вы удивитесь, но в WPF работают как-то по другому . И средств для правильной работы у неё достаточно.
...
Рейтинг: 0 / 0
Как правильно программным образом назначить выбранный объект в ListBox
    #39066180
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВолодимирКак правильно программным образом назначить выбранный объект в обычном ListBox,
если известно только SelectedValue которое надо выбрать.
Ну не заниматься же перебором значений SelectedIndex в цикле.
Должно быть более красивое средство.
SelectedValue у меня целое число.Ты не поверишь, у ListBox (точнее у Selector) есть свойства SelectedValue и SelectedValuePath.
...
Рейтинг: 0 / 0
Как правильно программным образом назначить выбранный объект в ListBox
    #39067303
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дошло, всё получилось.
Смысл в том, что для работы строчки
Код: c#
1.
SelectedValue=5;

должен быть соответствующим образом настроен SelectedValuePath
Но удивляет, что мне не удалось в интернет найти нужного примера
Смотрел и на MSDN , и на professorweb.ru
но не нашёл такого примера
...
Рейтинг: 0 / 0
Как правильно программным образом назначить выбранный объект в ListBox
    #39067308
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу подарить код, который мне помог, может кому пригодится

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
<Page x:Class="DSRFID_test2.Samples_MWS.ListBox_SelectedValue"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      
      xmlns:sys="clr-namespace:System;assembly=mscorlib"
      
      mc:Ignorable="d" 
      Title="ListBox_select"
      >


    <StackPanel 
      Background="LightCyan" Margin="10,70,10,0" Height="472" VerticalAlignment="Top" Orientation="Vertical" >
      
      <!--по умолч источником данных является DataContext - этот член поэтому пропушен-->
      <ListBox Margin="15"
               ItemsSource="{Binding}"                
               SelectedValuePath="N" 
               DisplayMemberPath="Name"
               x:Name="list" 
               Padding="2"
               Background="LightCoral" Foreground="Black" />
      <!--Другие варианты-->
    <!--SelectedValuePath="Name"-->
    <!--DisplayMemberPath="Name"-->


    <TextBox Background="Yellow" Width="80" Height="30" Margin="10" 
          Text="{Binding SelectedValue, UpdateSourceTrigger=PropertyChanged, ElementName=list}" 
                 />
    <!--Text="{Binding SelectedValue, UpdateSourceTrigger=PropertyChanged, ElementName=list}"-->
    <!--Text="{Binding SelectedValue, ElementName=list}"-->

    <Label Background="Yellow" Width="80" Height="30" Margin="10" HorizontalAlignment="Left"
          Content="{Binding SelectedItem, ElementName=list}"
               />

      <Button Name="SelectedValue1" Content="SelectedValue1" Padding="5"
              HorizontalAlignment="Left" Margin="180,30,0,0" VerticalAlignment="Top" 
              Click="SelectedValue1_Click" Height="30" 
            />




      <!--=============-->
        <Label Name="a1" FontSize="12">
          <TextBlock TextWrapping="Wrap"  xml:space="preserve">
SelectedItem                   возвращает выбранный объект(типа Number),
а SelectedValue      возвращает значение SelectedValue.N (типа int).
Кроме того, каждый объект в ListBox ассоциируется со значением своего поля N.        
Задав значение SelectedValue будет выбран объект у которого свойство N равно SelectedValue,
если таких объектов окажется несколько,
в качестве SelectedItem будет установлен первый по порядку
            СМ http://kindelephant.blogspot.ru/2011/03/selectedvalue-selecteditem.html
          </TextBlock></Label>

    </StackPanel>

</Page>
...
Рейтинг: 0 / 0
Как правильно программным образом назначить выбранный объект в ListBox
    #39067312
Володимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace DSRFID_test2.Samples_MWS {

  public class ВшыздфнValue_and_Otherth : Page {
  }

    public partial class ListBox_SelectedValue : Page {

      //====== КЛАСС СТРАНИЦЫ ==================

    
    public ListBox_SelectedValue( ) {
      InitializeComponent( );
      //lis1.Items.Add( "line0" );
      //lis1.Items.Add( "line1" );
      //lis1.SelectedIndex = 1;
      DataContext = new Number[ ]{
        new Number(1, @"one"),  
        new Number(2, @"two"),   
        new Number(3, @"three"),   
        new Number(88, @"four"),   
        new Number(5, @"five")
      };
        

      System.Collections.ArrayList myAL = new System.Collections.ArrayList {"aa", "bbb", "cccc","ddD"};
      int i=myAL.IndexOf("cccc");

    }


    private void SelectedValue1_Click( object sender, RoutedEventArgs e ) {
      //list.SelectedIndex += 1;
      list.SelectedValue = 3;
      //list.SetValue(SelectedValue1,3)
    }
  }



  //====== КЛАСС Number ==================
  class Number {
  //class Number : System.Collections.ArrayList {


    public int N { get; set; }
    public String Name { get; set; }


    public override string ToString( ) {
      return String.Format( "{0} is {1}", N, Name );
    }


    public Number( int n, String name ) {
      N = n;
      Name = name;
    }
  }
}
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как правильно программным образом назначить выбранный объект в ListBox
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]