Коллекция недвижимости => Стоимость? - PullRequest
0 голосов
/ 15 июля 2010

Я хотел бы создать коллекцию пар ключ-значение в C #, где ключ - это свойство элемента управления ASP.net (например, ID), а значение - это значение этого свойства. Я хотел бы сделать это, чтобы позже я мог выполнить итерацию по коллекции и посмотреть, имеет ли данный элемент управления свойства в моей коллекции (и значения свойств в элементе управления соответствуют значениям, определенным в моей коллекции). Какие-нибудь предложения относительно лучшего способа сделать это? Спасибо за любую помощь.

Пример псевдокода:

Properties[] = new Properties[] {new Property(){name="ID",value="TestControl1"}, new Property(){name = "Text",value="Type text here"}}

private bool controlContainsProperties(Control control){
    foreach(Property Property in Properties[])
    {
        if((control does not contain property) || (control property value != Property.Value))
        return false;
    }
return true;
}

Ответы [ 2 ]

0 голосов
/ 15 июля 2010

не проверял это, но вот мой путь:

    public bool HasProperty( object target, IDictionary<string, object> values )
    {
        var targetType = target.GetType();
        return values.All( kvp =>
            {
                var property = targetType.GetProperty( kvp.Key );
                if ( property != null )
                {
                    var value = property.GetValue( target, null );
                    if ( value != null )
                        return value.Equals( kvp.Value );
                }
                return false;
            } );
    }
0 голосов
/ 15 июля 2010

Моей первой идеей было использование свойства tag, но потом я понял, что в элементах управления APS.NET нет тегов. Тем не менее, есть вопрос о тегах.

В том же потоке есть решение с картой свойств «Атрибуты» - выглядит многообещающе.

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