поиск значения в списке элементов источника по номеру индекса wpf mvvm - PullRequest
0 голосов
/ 27 июня 2018

Я использую Wpf MVVM, если я знаю номер индекса элемента / строки, то как мне найти значение в списке / элементе источника по определенному номеру индекса.

Примечание: я могу получить номер индекса, номер индекса уже будет известен.

ниже - код xaml для просмотра списка

<ListView                       
    Grid.Row="1"
    ItemContainerStyle="{StaticResource FileItemStyle}"
    ItemsSource="{Binding BarCode, IsAsync=True}"
    ScrollViewer.HorizontalScrollBarVisibility="Disabled"
    SelectedIndex="{Binding SelectedIndex}"
    SelectedItem="{Binding SelectBarCode, 
    UpdateSourceTrigger=PropertyChanged}"
    SelectionMode="Single"
    Style="{StaticResource ListItemsMain}"

и ObservableCollection для itemsource

 private ObservableCollection<BarCodeModel> mBarCode = null;
 public ObservableCollection<BarCodeModel> BarCode
    {
        get
        {
            mBarCode = mBarCode ?? new ObservableCollection<BarCodeModel>();
            return mBarCode;
        }
    }

и ниже код для модели

public class BarCodeModel
{
    public int BarCodeEntry_ID { get; set; }
    public string BarCodeEntry_Title { get; set; }

и ниже - команда, в которую я хочу поместить свою логику

private ICommand mSearchValueByIndexNumberCommand;
public ICommand SearchValueByIndexNumberCommand
    {
        get
        {
            if (mSearchValueByIndexNumberCommand == null)
            {
                mSearchValueByIndexNumberCommand = new DelegateCommand(delegate ()
                {
                    // search BarCodeEntry_ID in BarCode where SelectedIndex is 5 (or other value)

                });
            }
            return mSearchValueByIndexNumberCommand;
        }
    }

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Как и в вашем XAML, вы привязываете ListView.ItemsSource к BarCode вашей ViewModel, но также привязываете ListView.SelectedItem и ListView.SelectedIndex к SelectBarCode и SelectedIndex, теперь, когда вы выбираете какой-либо элемент в ListView. , он (ListView) обновит значения SelectBarCode и SelectedIndex в вашей ViewModel.

Таким образом, вы можете получить доступ к вашему текущему выбору с помощью SelectBarCode или BarCode[SelectedIndex].

0 голосов
/ 27 июня 2018

Ниже приведен ответ на мой вопрос, отдельное спасибо @ vasily.sib

private ICommand mSearchValueByIndexNumberCommand;
public ICommand SearchValueByIndexNumberCommand
{
    get
    {
        if (mSearchValueByIndexNumberCommand == null)
        {
            mSearchValueByIndexNumberCommand = new DelegateCommand(delegate ()
            {
               int BarCodeId = BarCode[SelectedIndex].BarCodeEntry_ID;

            });
        }
        return mSearchValueByIndexNumberCommand;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...