подскажите пожалуйста, ради эксперимента в качестве 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 =
{
//
};
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хочу сохранять пароли в базе с помощью RSAЯ так понял по примеру - https://msdn
У меня есть некий коммент, нужно написать unittest на проверку что он не может быть пустым и не может быть меньше 10 символовВ контроллере проверка...
Кто знает подскажите пожалуйста почему выводятся не все записи на странице
Не работает error_reporting(E_ALL); на моем сайте, хотя все написано правильноЧто делать? У меня веб-хостинг/веб-сервер