下面是我使用XMLSerializer生成的XML,并且有propertygrid的属性。我希望做的是编辑XML文件中的内容,以便可以隐藏该属性,而不是使用[browsable(false)]更改代码。例如,有“名称”,“ ID”,“模式”和“电子邮件”,这4个属性,我想通过编辑XML文件中的内容来隐藏“名称”。我应该怎么做才能做到这一点?
<?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">[email protected]</Email>
</Person>
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}}"/>
ViewModel:
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
你的Button
代码,你可以通过这个代码视图模型使它:
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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句