У меня есть пользовательский элемент управления, основанный на ListBox.
этот DataTemplate с Canvas, который можно показать или скрыть.
когда пользователь нажимает на ListBoxItem, он должен быть выбран (показать холст)
и еще один щелчок должен скрыть холст.
Я использую конвертер, который показывает / скрывает холст в соответствии с моим объектом данных (устройство, см. Ниже)
как я могу изменить свой объект данных (устройство) в соответствии с ListBoxItem IsSelected?
(он должен переключаться между элементом select = true и другим щелчком select = false)
спасибо, Ави
шаблон данных:
<DataTemplate x:Key="ItemTemplate">
<StackPanel>
<TextBlock Text="{Binding Name}" FontSize="12" Margin="3"/>
<TextBlock Text="{Binding Location}" FontSize="10" Margin="1"/>
<Canvas x:Name="canvas1"
Visibility="{Binding SelectedToggle, Converter={StaticResource MYVisabilityConverter}}"
IsHitTestVisible="False" >
<Image Source="/Resources/Images/Bubble.png" Width="100"/>
</Canvas>
</StackPanel>
объект, который привязывается к DataTemplate:
public class Device : Notifier
{
public Device()
{
}
public Device(string name)
{
this.Name = name;
}
private Point location;
/// <summary>
/// the device location
/// </summary>
public Point Location
{
get { return location; }
set { location = value; OnPropertyChanged("Location"); }
}
string name;
/// <summary>
/// the device Name
/// </summary>
public string Name
{
get { return name; }
set { name = value; OnPropertyChanged("Name"); }
}
bool selectedToggle = false;
/// <summary>
/// toggle between select and Un select of the device
/// </summary>
public bool SelectedToggle
{
get { return selectedToggle; }
set { selectedToggle = value; OnPropertyChanged("SelectedToggle"); }
}
}