Здравствуйте,
Прочитав много тем о связывании видимости в течение нескольких часов, я спрашиваю здесь, потому что мне не удается заставить мой случай работать.
У меня есть сетка с пользовательским вложенным свойством (тип System. Windows .Visibily), которую я хочу использовать для отображения (или нет) текстового блока внутри сетки (путем привязки). Также я хочу изменить видимость каждый раз, когда изменяются пользовательские свойства.
Что я сделал до сих пор: Класс CustomProperties:
public static class CustomProperties
{
public static readonly DependencyProperty starVisibilityProperty =
DependencyProperty.RegisterAttached("starVisibility",
typeof(System.Windows.Visibility), typeof(CustomProperties),
new FrameworkPropertyMetadata(null));
public static System.Windows.Visibility GetStarVisibility(UIElement element)
{
if (element == null)
throw new ArgumentNullException("element");
return (System.Windows.Visibility)element.GetValue(starVisibilityProperty);
}
public static void SetStarVisibility(UIElement element, System.Windows.Visibility value)
{
if (element == null)
throw new ArgumentNullException("element");
element.SetValue(starVisibilityProperty, value);
}
}
Тогда здесь мой xaml:
<Grid Name="server1State" Grid.Row="1" local:CustomProperties.StarVisibility="Hidden">
<TextBlock Name="server1Star" Text="" FontFamily="{StaticResource fa-solid}" FontSize="30" Margin="10" Foreground="#375D81" Visibility="{Binding ElementName=server1State, Path=server1State.(local:CustomProperties.starVisibility)}"/>
</Grid>
Но когда я запускаю свое приложение, текстовый блок абсолютно не скрыт, он виден и никогда не изменится. Я много чего пробовал с Path, а также с INotifyPropertyChanged, но так как я работаю со стати c пользовательским вложенным свойством, мне не удалось заставить его работать.
Может быть, некоторые из вас могли бы помочь мне, спасибо .