Есть ли способ для получателя возвращать определенные записи словаря <string, someClass> на основе списка строк? - PullRequest
0 голосов
/ 10 января 2019

В моем приложении WPF я пытаюсь получить только определенные словарные записи на основе списка ключей, которые пользователь может редактировать.

Я пытаюсь сделать это, имея List<string> ListOfKeys, который пользователь может изменить, Dictionary<string, AnObject> AllObjects, который содержит группу объектов AnObject с разными переменными, и Dictionary<string, AnObject> SomeObjects с get{ }, содержащим запрос вернуть только записи из AllObjects, где ключ в AllObjects соответствует записи в ListOfKey s.

Что мне поставить в запросе, чтобы эта работа работала? Кроме того, какие-либо предложения для другого пути, которым я должен пойти об этом?

XAML:

<ItemsControl ItemsSource="{Binding SomeObjects.Values}" Grid.Row="1">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding someText}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

C #

public class AClass
{
    string someText;
    int someNumber
    [...] etc.
}

public Dictionary<string, AClass> AllObjects;

public List<string> ListOfKeys;

public Dictionary<string, AClass> SomeObjects
{
    get
    {
        return AllObjects.Where(a key in AllObjects matches an entry in the ListOfKeys);
    }
}

1 Ответ

0 голосов
/ 10 января 2019

Возвращение к списку вместо словаря:

List<AClass> someObjects
get
{
    return AllObjects.Where(x => ListOfKeys.Contains(x.Key)).Select(x => x.Value).toList();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...