Я использую элемент управления в виде дерева в моем проекте silverlight. Я использую привязку данных для привязки моей модели к дереву. Это отлично работает.
После добавления некоторых функций в дерево я столкнулся с двумя проблемами:
Когда я изменяю свойство в своей модели, дерево не обновляется даже после того, как вызывается мое onproperty, а также мой конвертер не вызывается? (Мне нужно скрыть элемент при изменении определенного свойства) (ответ)
Как скрыть предмет в дереве? (Я использую текстовое поле + изображение в качестве шаблона элемента)
Панель стека скрыта, но пустой контейнер остается в дереве
DataTemplate:
<common:HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal" Visibility="{Binding IsAvailable, Converter={StaticResource ItemVisibleConverter} ,Mode=TwoWay}" >
<Image Source="{Binding Converter={StaticResource ImageConverter}}"/>
<controls:Label Name="myItem" Content="{Binding Description, Converter={StaticResource ItemConverter} ,Mode=TwoWay}" Foreground="Black"/>
</StackPanel>
</common:HierarchicalDataTemplate>
Конвертер: общедоступный объект Convert (значение объекта, тип targetType, параметр объекта, культура ystem.Globalization.CultureInfo) {return GetVisibility (value); }
private Visibility GetVisibility(object value)
{
bool IsVisible= (bool)value;
if (IsAvailableForDownload)
{
return Visibility.Visible;
}
else
{
return Visibility.Collapsed;
}
}
Модель
public class MyModel: INotifyPropertyChanged
{
public bool IsAvailable
{
get
{
return _IsAvailableForDownload;
}
set
{
_IsAvailableForDownload = value;
onPropertyChanged(this, "IsAvailableForDownload");
}
}
//Code for on property changed event
}
С Уважением