, , - . " ", , " " . , .
, , , - "ItemViewDisplayModeSetting", , , , .
, , . , . ( ) , , . , . :
interface IActiveViewsService : INotifyPropertyChanged
{
bool HasActiveViewsSupportingDisplayMode { get; }
}
interface IDisplayModeService : INotifyPropertyChanged
{
DisplayMode DisplayMode { get; }
}
class ItemViewModel
{
public ItemViewModel(IDisplayModeService displayModeService)
{
}
}
class MenuViewModel
{
public MenuViewModel(IActiveViewsService activeViewsService)
{
}
}
- ... IDisplayModeService, . , DisplayMode, . IActiveViewsService, , , IRegionManager PRISM ... .
interface IDisplayModeEditor
{
void ChangeDisplayMode(DisplayMode newMode);
}
class MenuViewModel
{
public MenuViewModel(IActiveViewsService activeViewsService, IDisplayModeEditor modeEditor)
{
}
}
class DisplayModeStorage : IDisplayModeService, IDisplayModeEditor
{
private DisplayMode displayMode;
public DisplayMode DisplayMode
{
get { return this.displayMode; }
set
{
if(value == this.displayMode)
return;
this.displayMode = value;
this.RaisePropertyChanged("DisplayMode");
}
}
public void ChangeDisplayMode(DisplayMode newMode)
{
this.DisplayMode = newMode;
}
}
.