Напишите в своем коде свойство типа записи в вашем ограниченном словаре. Скажем так, например, я привязываю Dictionary<Person, int>
к своему репитеру. Я бы написал (в C #) свойство, подобное этому, в моем коде:
protected KeyValuePair<Person, int> Item
{
get { return (KeyValuePair<Person, int>)this.GetDataItem(); }
}
Тогда, на мой взгляд, я могу использовать такие сегменты кода, как это:
<span><%# this.Item.Key.FirstName %></span>
<span><%# this.Item.Key.LastName %></span>
<span><%# this.Item.Value %></span>
Это делает для более чистой разметки. И хотя я бы предпочел менее общие имена для ссылочных значений, я знаю, что Item.Key
- это Person
, а Item.Value
- это int
, и они строго типизированы.
Вы можете (читай: должен ), конечно, переименовать Item
во что-то более символическое для записи в вашем словаре. Одно это поможет уменьшить двусмысленность именования в моем примере использования.
Конечно, ничто не мешает вам определить дополнительное свойство, скажем так:
protected Person CurrentPerson
{
get { return ((KeyValuePair<Person, int>)this.GetDataItem()).Key; }
}
И используя его в своей разметке, таким образом:
<span><%# this.CurrentPerson.FirstName %></span>
... ничего из этого не мешает вам также получить доступ к соответствующей записи словаря .Value
.