string
_CurrentExpanded;
public
CurrentExpanded
{
get
return
}
set
if
(_CurrentExpanded != value)
_CurrentExpanded = value;
RaisePropertyChanged(
"CurrentExpanded"
);
<
StackPanel
Margin
=
"20"
>
Expander
Header
"Expander one"
IsExpanded
"{Binding CurrentExpanded, Converter={StaticResource ExpandedConverter}, ConverterParameter=1}"
TextBlock
Text
"ONE"
/>
</
"Expander two"
"{Binding CurrentExpanded, Converter={StaticResource ExpandedConverter}, ConverterParameter=2}"
"TWO"
"Expander three"
"{Binding CurrentExpanded, Converter={StaticResource ExpandedConverter}, ConverterParameter=3}"
"THREE"
class
ExpandedConverter : IValueConverter
object
Convert(
value, System.Type targetType,
parameter, System.Globalization.CultureInfo culture)
((
)value == (
)parameter);
ConvertBack(
parameter;
DataTemplate
x:Key
"DataTemplate1"
"{Binding Header}"
Content
"{Binding Content}"
Expander.Resources
local:ExpandedMultiConverter
"ExpandedMultiConverter"
Expander.IsExpanded
MultiBinding
Converter
"{StaticResource ExpandedMultiConverter}"
Binding
Path
"CurrentExpanded3"
Mode
"TwoWay"
ElementName
"Window"
"ItemId"
"OneWay"
ExpanderItem
Header {
;
; }
ItemId {
FrameworkElement Content {
Expanders =
new
ObservableCollection<ExpanderItem>
ExpanderItem { Header=
"Expander 1"
, ItemId=
"1"
, Content =
TextBlock { Text=
"Hello"
} },
"Expander 2"
"2"
Grid { Width=200, Height=30, Background=Brushes.Yellow } },
"Expander 3"
"3"
Label { Content=
"World"
};
ListBox
ItemsSource
"{Binding Expanders}"
ItemTemplate
"{DynamicResource DataTemplate1}"
Background
"Transparent"
BorderThickness
"0"
XAML guy edited Revision 3. Comment: tweak
XAML guy edited Original. Comment: tidy