下面是我使用XMLSerializer生成的XML,还有propertygrid的属性。我想要做的是编辑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>
&#13;
答案 0 :(得分:2)
MVVM方法:
基本上它是由.Net 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");
}
}
}
如果您想更改代码中Visibility
的{{1}},可以通过ViewModel中的此代码进行设置:
Button
如果您使用代码隐藏方法:
XAML:
ShowButton = false;
代码隐藏:
<Button Content="Hello, I am the button" Name="btn"/>