Я пытаюсь контролировать видимость PropertyDefinition
в Telerik RadPropertyGrid
путем привязки к атрибуту Visibility
свойства, но похоже, что PropertyDefinition
игнорирует изменения этого атрибута.Возможно ли контролировать видимость для Telerik RadPropertyGrid с C#/WPF?
Ниже приведен код XAML элемента управления. Примечание TestVis
.
<Window x:Class="SettingsDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
Title="SettingsDialog"
Height="500"
Width="330">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<telerik:RadPropertyGrid
Grid.Row="0"
x:Name="PropertyGrid"
AutoGeneratePropertyDefinitions="False"
Item="{Binding}">
<telerik:RadPropertyGrid.PropertyDefinitions>
<telerik:PropertyDefinition
Binding="{Binding Setting1}"
DisplayName="Property 1"
Description=""Lorem ipsum dolor sit amet"
/>
<telerik:PropertyDefinition
Binding="{Binding Setting2}"
Visibility="{Binding TestVis}"
DisplayName="Property 2"
Description=""Lorem ipsum dolor sit amet"
/>
</telerik:RadPropertyGrid.PropertyDefinitions>
</telerik:RadPropertyGrid>
</Grid>
</Window>
Ниже приведен код для этого диалогового окна.
using System.Windows;
public partial class SettingsDialog : Window
{
private Visibility _TestVis;
public Visibility TestVis
{
get { return _TestVis; }
set
{
this._TestVis = value;
NotifyPropertyChanged("TestVis");
}
}
public bool Setting1 = { get; set; }
public bool Setting2 = { get; set; }
public SettingsDialog()
{
Setting1 = true;
Setting2 = true;
TestVis = Visibility.Collapsed;
InitializeComponent();
}
}
Я ожидаю, что это приведет к тому, что «Свойство 2» не будет отображаться, но оно есть. Что я делаю не так?
Я изменил 'назначение TestVis' в конструкторе, чтобы иметь' Visibility' значение вместо Boolean. – Amelamise