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


Наверно надо использовать метод Select
...
Рейтинг: 0 / 0
01.10.2015, 12:00
    #39065969
Володимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно программным образом назначить выбранный объект в ListBox
Проблему удалось решить добавив ещё одну колонку в запрос данных
Теперь запрос такой
Код: 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
01.10.2015, 14:19
    #39066172
Monochromatique
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно программным образом назначить выбранный объект в ListBox
Володимир неужели у WPF нет своих средств для выделения строки, зная только SelectedValue ???

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

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

Код: 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
02.10.2015, 17:09
    #39067312
Володимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно программным образом назначить выбранный объект в ListBox
Код: 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
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как правильно программным образом назначить выбранный объект в ListBox / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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