Ответы пользователя по тегу XAML
  • Как создать фильтрацию в привязанной коллекции в WPF?

    k1lex
    @k1lex
    Программист торг. сети. C# (WPF, WinForms), T-SQL
    Могу предложить решение, которое сам найдя на просторах сети начал использовать и остался доволен.
    1. Заводим коллекцию, которая будет у нас источником
    public ObservableCollection<Person>  FilteredCollection
            {
                get
                {
       return  new ObservableCollection<Person>(PersonCollection.Where(i => FilteredCheck(i)));
                }
            }

    2.
    public bool FilteredCheck(DemandHead item)
            {
                bool Accept=true;
    // организовываем проверку как вашей душе удобно
    }
    
    // И дальше при изменении фильтра оповещаем View об изменении данных
            public bool IsFilterEnabled
            {
                get
                {
                    return _IsFilterEnabled;
                }
    
                set
                {
                    _IsFilterEnabled = value;
                    base.OnPropertyChanged("IsFilterEnabled");
                    base.OnPropertyChanged("FilteredCollection");
    
                }
            }
    Ответ написан
    Комментировать
  • Как настроить получение дополнительных свойств при использовании "своего" контрола?

    k1lex
    @k1lex Автор вопроса
    Программист торг. сети. C# (WPF, WinForms), T-SQL
    На часть вопроса я всё таки нашел ответ самостоятельно.
    StringFormat не подхватывался, потому что при создании DependencyProperty у свойства "Value" использовался тип object. А StringFormat используется только для типа String. В виду того, что этот компонент нужен мне только для чтения, я поменял typeof(object) на typeof(string) и всё стало работать как нужно.
    Нормальным решением это конечно не назовешь. Но как говорил один герой в старом и добром мультфильме: "И так сойдет"
    Более подробно об этом написано на stackoverflow

    Насчет isReadOnly - завел для компонента еще одно свойство, аналогично первым двум (value и key). Работает.
    Ответ написан
    Комментировать