Сильно типизированные привязки данных и дженерики?

Предположим, что я хочу привязать общий тип (здесь: Dictionary<string, string>) к Repeater, используя новую строго привязанную привязку данных ASP.NET 4.5.

Тогда мне пришлось бы поставить KeyValuePair<string, string> в качестве свойства ItemType ретранслятора.

<asp:Repeater id="rpCategories" runat="server" ItemType="System.Collections.Generic.KeyValuePair<string, string>">

Здесь есть очевидная проблема: Я не могу использовать < или > в тексте ItemType!

Как бы это можно было сделать? Возможно ли использование дженериков каким-то образом с новой моделью привязки данных?

Ответ 1

Это работает для меня:

Код за

   protected void Page_Load(object sender, EventArgs e)
        {
           rpCategories.DataSource = new Dictionary<string, string>()
            {
                {"1", "item"},{"2", "item"},{"3", "item"},
            };
        rpCategories.DataBind();
        }

Разметка

<asp:Repeater ID="rpCategories" runat="server" ItemType="System.Collections.Generic.KeyValuePair`2[System.String,System.String]">
        <ItemTemplate>
            <asp:Label ID="Label1" runat="server" Text='<%# Item.Key %>'></asp:Label>
        </ItemTemplate>
    </asp:Repeater>