[Category("SomeCat")]
[Description("Gets or sets how items are displayed in the ShellListView control.")]
[DefaultValue(View.Details)]
new public View View
{
get { return base.View; }
set
{
System.Diagnostics.Debug.WriteLine("View");
if (value != View.LargeIcon)
{
//Reset these values because they can only be true if LargeIcon is set.
ShowExtraLargeIcons = false;
}
base.View = value;
}
}
private bool m_ShowExtraLargeIcons;
[Category("Appearance")]
[DefaultValue(false)]
public bool ShowExtraLargeIcons
{
get { return m_ShowExtraLargeIcons; }
set
{
if (m_ShowExtraLargeIcons == value)
return;
System.Diagnostics.Debug.WriteLine("Extra");
m_ShowExtraLargeIcons = value;
if (m_ShowExtraLargeIcons)
// Always set view to LargeIcon if ShowExtraLargeIcons is enabled
View = View.LargeIcon;
}
}
Моя проблема: если я устанавливаю View для чего-то другого, кроме LargeIcons (через менеджер свойств VS 2010), свойство ShowExtraLargeIcons остается True, хотя для него установлено значение False.
Если для свойства ShowExtraLargeIcons задано значение True, для свойства View установлено значение LargeIcons, как и ожидалось.
Что может помочь: сообщения Debug («View» и «Extra») после настройки ShowExtraLargeIcons отображаются, после настройки View они не отображаются (оба установлены во время разработки).