如何在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");
      }
   }
}

如果您想在代码中更改 ButtonVisibility,可以在 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;