Использование UserControl в ListBoxItem

174
05 октября 2018, 19:00

подскажите пожалуйста, ради эксперимента в качестве Item ListBox использую вместо шаблона UserControl который связан в словаре ресурсов с моделью представления следующим образом:

<datatemplate datatype="{x:Type vm:QuestionModelView}">
    <vw:questitonview/>
</datatemplate>

в итоге ListBoxItem отображается в соответствии с разметкой QuestitonView (это мой UserControl) за исключением того, что привязанные к QuestionModelView данные НЕ ОТОБРАЖАЕТ.
Вот разметка элемента управления

<grid datacontext="{Binding}" width="auto">
    <stackpanel>
        <textblock grid.row="0" height="20" fontsize="16"
                   text="{Binding path=Name}" horizontalalignment="Center"/>
        <textblock grid.row="1" fontsize="16"
                   text="{Binding Path=QuestionField}"
                   horizontalalignment="Center" width="auto"/>
    </stackpanel>
</grid>

Вот сам ListBox

<listbox grid.column="1" x:name="listy" 
         itemssource="{Binding QuestionsVms}"
         itemcontainerstyle="{StaticResource BoxThemeItemStyle}" 
         issynchronizedwithcurrentitem="True" minwidth="500" width="auto"  
         minheight="200" height="auto" margin="0,5">
</listbox>

Вот код модели представления

    public class QuestionModelView : ViewModelBase, IDataErrorInfo
    {
    public AllQuestionModelView _parent;
    public Question Model { get; private set; }
    #region Свойства
    public  string Name {get{ return Model.Name; }set { Model.Name =  
    value; OnPropertyChanged(nameof(Name)); } }
    public string QuestionField { get { return Model.QuastionField; } set  
    { Model.QuastionField = value;  
    OnPropertyChanged(nameof(QuestionField)); } }
    public ObservableCollection<AnswerModelView> AnswerModelViews { get;  
    set; }
    #endregion // Свойства
    #region Конструктор
    public QuestionModelView(Question q,AllQuestionModelView parent)
    {
        AnswerModelViews = new ObservableCollection<AnswerModelView> 
    (q.Answers.Select(a=>new AnswerModelView(a,this)));
        AnswerModelViews.CollectionChanged += OnCollectionChanged;
       _parent = parent; Model = q;
        PropertyChanged += OnVerifingProperty;
    }
    #endregion //Конструктор
    #region Обработчики коллекций
    void OnCollectionChanged(object sender,  
    NotifyCollectionChangedEventArgs e)
    {
        if (e.NewItems != null && e.NewItems.Count != 0)
            foreach (AnswerModelView AnswerVM in e.NewItems)
            {
                AnswerVM.PropertyChanged += this.OnAnswerPropertyChanged;
     }
        foreach (AnswerModelView AnswerVM in e.OldItems)
        {
            AnswerVM.PropertyChanged -= this.OnAnswerPropertyChanged;

        }
    }
    private void OnAnswerPropertyChanged(object sender,
    PropertyChangedEventArgs e)
    {
    }
    #endregion //Обработчики коллекций
    private void OnVerifingProperty(object sender,  
    PropertyChangedEventArgs e)
    {
    }
    string IDataErrorInfo.Error { get { return null; } }
    string IDataErrorInfo.this[string propertyName]
    {
        get { return this.GetValidationError(propertyName); }
    }
    string GetValidationError(string propertyName)
    {
        if (Array.IndexOf(ValidatedProperties, propertyName) < 0)
            return null;
        string error = null;
        switch (propertyName)
        {
            //case nameof(Name):
            //    error = this.ValidateName(); break;
            //case "Num": error = this.ValidateNameOfNum(); break;
        }
        return error;
    }
    static readonly string[] ValidatedProperties =
    {
       //
    };
    }
READ ALSO
Сохранение ключей в базе данных

Сохранение ключей в базе данных

Хочу сохранять пароли в базе с помощью RSAЯ так понял по примеру - https://msdn

172
UnitTest проерить текст на валидацию

UnitTest проерить текст на валидацию

У меня есть некий коммент, нужно написать unittest на проверку что он не может быть пустым и не может быть меньше 10 символовВ контроллере проверка...

166
Выводятся не все записи Wordpress

Выводятся не все записи Wordpress

Кто знает подскажите пожалуйста почему выводятся не все записи на странице

209
Error_reporing не работает (Web-hosting)

Error_reporing не работает (Web-hosting)

Не работает error_reporting(E_ALL); на моем сайте, хотя все написано правильноЧто делать? У меня веб-хостинг/веб-сервер

164