WPF GridViewColumn's DisplayMemberBinding с использованием значения ключа словаря - PullRequest
3 голосов
/ 17 августа 2011

Я не нашел ничего похожего на это в Stack или Google, так что, возможно, это не возможно, но, надеюсь, у кого-нибудь умного найдется идея. Я немного новичок в WPF / XAML.

У меня есть собственный класс, который напоминает что-то похожее на это.

public class LogEntry
{
   public Diciontary<string, string> Stuff;
   public string MyOtherProperty;   
}

Мой GridView будет иметь 2 столбца. Один для MyOtherProperty и один для Stuff ["Stuff1"]. Предполагая, что я не могу изменить Diciontary на что-то, к чему гораздо проще привязаться.

Я привязываю свой ListView к List<LogEntry>. Как бы я достиг этого в этом сценарии.

<ListView ItemsSource="{Binding}" DataContext="{Binding}">
   <ListView.View>
      <GridView>
         <GridView.Columns>
            <GridViewColumn DisplayMemberBinding="{Binding MyOtherProperty}"></GridViewColumn>
            <GridViewColumn DisplayMemberBinding="**{Binding Stuff[Stuff1]}**"></GridViewColumn>
         </GridView.Columns>
      </GridView>
   </ListView.View>
</ListView>

Есть идеи? Спасибо.

1 Ответ

4 голосов
/ 17 августа 2011

WPF поддерживает привязку к свойствам, а не к полям.Измените класс LogEntry на ниже, и он должен работать.

public class LogEntry
{
    public Dictionary<string, string> Stuff { get; set; }
    public string MyOtherProperty { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...