如何在XML中隐藏PropertyGid的属性?
How can I hide the property of PropertyGid in XML?
下面是我的 XML 使用 XMLSerializer 生成的,还有 属性 网格的属性。我想做的是编辑 XML 文件中的内容,以便可以隐藏 属性,而不是使用 [browsable(false)] 更改代码。比如有Name、ID、Mode和email这4个属性,我想通过编辑XML文件中的内容来隐藏然后Name。我应该怎么做才能实现这一目标?
<?xml version="1.0" encoding="utf-8" ?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name xsi:type="xsd:string">Hello</Name>
<ID xsi:type="xsd:string">1132701760</ID>
<Mode xsi:type="xsd:string">burst</Mode>
<Email xsi:type="xsd:string">junxiong1995@hotmail.com</Email>
</Person>
MVVM 方法:
基本上是.Net中内置的class实现的 BooleanToVisibilityConverter
:
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="booleanVisibilityConverter"/>
</UserControl.Resources>
让我展示作品示例:
XAML:
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="booleanVisibilityConverter"/>
</UserControl.Resources>
...
<Button Content="Hello, I am the button" Visibility="{Binding ShowButton,
Converter={StaticResource booleanVisibilityConverter}}"/>
视图模型:
private bool _showButton = false;
public bool ShowButton
{
get {
//you can write logic here to get values from XML
return _showButton;
}
set
{
if (value != _showButton)
{
//you can write logic here to get values from XML
_showButton = value;
OnPropertyChanged("ShowButton");
}
}
}
如果您想在代码中更改 Button
的 Visibility
,可以在 ViewModel 中通过以下代码实现:
ShowButton = false;
如果使用代码隐藏方法:
XAML:
<Button Content="Hello, I am the button" Name="btn"/>
代码隐藏:
//read xml file
if(...your logic here...)
btn.Visibitity= System.Windows.Visibility.Visible;
下面是我的 XML 使用 XMLSerializer 生成的,还有 属性 网格的属性。我想做的是编辑 XML 文件中的内容,以便可以隐藏 属性,而不是使用 [browsable(false)] 更改代码。比如有Name、ID、Mode和email这4个属性,我想通过编辑XML文件中的内容来隐藏然后Name。我应该怎么做才能实现这一目标?
<?xml version="1.0" encoding="utf-8" ?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name xsi:type="xsd:string">Hello</Name>
<ID xsi:type="xsd:string">1132701760</ID>
<Mode xsi:type="xsd:string">burst</Mode>
<Email xsi:type="xsd:string">junxiong1995@hotmail.com</Email>
</Person>
MVVM 方法:
基本上是.Net中内置的class实现的 BooleanToVisibilityConverter
:
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="booleanVisibilityConverter"/>
</UserControl.Resources>
让我展示作品示例:
XAML:
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="booleanVisibilityConverter"/>
</UserControl.Resources>
...
<Button Content="Hello, I am the button" Visibility="{Binding ShowButton,
Converter={StaticResource booleanVisibilityConverter}}"/>
视图模型:
private bool _showButton = false;
public bool ShowButton
{
get {
//you can write logic here to get values from XML
return _showButton;
}
set
{
if (value != _showButton)
{
//you can write logic here to get values from XML
_showButton = value;
OnPropertyChanged("ShowButton");
}
}
}
如果您想在代码中更改 Button
的 Visibility
,可以在 ViewModel 中通过以下代码实现:
ShowButton = false;
如果使用代码隐藏方法:
XAML:
<Button Content="Hello, I am the button" Name="btn"/>
代码隐藏:
//read xml file
if(...your logic here...)
btn.Visibitity= System.Windows.Visibility.Visible;