finaly found the Solution.. had to think another way:
class
groupObject : INotifyPropertyChanged
{
private
string
_header;
public
string
Header
{
set
{
_header = value;
RaisePropertyChanged(
"Header"
);
}
get
{
return
_header; }
}
public
event
PropertyChangedEventHandler PropertyChanged;
private
void
RaisePropertyChanged(
string
propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if
(handler !=
null
)
{
handler(
this
,
new
PropertyChangedEventArgs(propertyName));
}
}
}
class
tabObject
{
public
string
Header {
set
;
get
; }
private
ObservableCollection<groupObject> _groups =
new
ObservableCollection<groupObject>();
public
ObservableCollection<groupObject> Groups
{
get
{
return
_groups; }
set
{
_groups = value;
}
}
}
class
tabsObjects
{
public
string
Header {
set
;
get
; }
public
List<tabObject> _tabs =
new
List<tabObject>();
public
tabsObjects()
{
_tabs.Add(
new
tabObject { Header =
"Tab1"
, Groups =
new
ObservableCollection<groupObject>() {
new
groupObject { Header =
"Group 1"
},
new
groupObject { Header =
"Group 2"
},
new
groupObject { Header =
"Group 3"
} } });
_tabs.Add(
new
tabObject { Header =
"Tab2"
, Groups =
new
ObservableCollection<groupObject>() {
new
groupObject { Header =
"Group 1"
},
new
groupObject { Header =
"Group 3"
} } });
_tabs.Add(
new
tabObject { Header =
"Tab3"
, Groups =
new
ObservableCollection<groupObject>() {
new
groupObject { Header =
"Group 1"
},
new
groupObject { Header =
"Group 7"
},
new
groupObject { Header =
"Group 8"
} } });
}
public
List<tabObject> Tabs
{
get
{
return
_tabs; }
}
}
xaml very simple, no DataTemplates needed:
INotifyPropertyChanged works fine
very good MVVM Example for Ribbon Binding in this Sample: http://www.microsoft.com/en-us/download/details.aspx?id=11877