属性 值更改时更改图像源
Change image source when property value changed
我在 HomePage.xaml、
中有这个文本块和图像图标
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
x:Class="MyApp.HomePage">
d:DataContext="{d:DesignInstance Type=HomePageViewModel}">
<Grid>
<TextBlock Text="{Binding Username}"></TextBlock>
<Image Source="{Binding ImageSource}" Width="45"></Image>
</Grid>
</Window>
我有这个 HomePageViewModel class 但是这些 Username 和 ImageSource 属性位于另一个名为 WebAppViewModel 的视图模型中。
internal class WebAppViewModel
{
private string userName;
public string Username
{
get
{
return userName;
}
set
{
userName = value;
OnPropertyChanged();
}
}
private bool hasSignedIn;
public bool HasSignedIn
{
get
{
return hasSignedIn;
}
set
{
hasSignedIn = value;
OnPropertyChanged();
}
}
public string ImageSource
{
get; set;
}
}
取决于 HasSignedIn 值,需要显示图像(灰色图标图像/绿色图标图像)
此用户数据来自我正在为这些属性分配值的另一项服务。
如何在 HomePage.xaml 中绑定这些属性?当 HasSignedIn 值发生变化时需要通知,以便显示正确的彩色图像,如果 HasSignedIn 为 false,则 TextBlock 应该是不可见的。
我在 ImageSource 集合中使用了 OnPropertyChanged() 属性。
我在 HomePage.xaml、
中有这个文本块和图像图标<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
x:Class="MyApp.HomePage">
d:DataContext="{d:DesignInstance Type=HomePageViewModel}">
<Grid>
<TextBlock Text="{Binding Username}"></TextBlock>
<Image Source="{Binding ImageSource}" Width="45"></Image>
</Grid>
</Window>
我有这个 HomePageViewModel class 但是这些 Username 和 ImageSource 属性位于另一个名为 WebAppViewModel 的视图模型中。
internal class WebAppViewModel
{
private string userName;
public string Username
{
get
{
return userName;
}
set
{
userName = value;
OnPropertyChanged();
}
}
private bool hasSignedIn;
public bool HasSignedIn
{
get
{
return hasSignedIn;
}
set
{
hasSignedIn = value;
OnPropertyChanged();
}
}
public string ImageSource
{
get; set;
}
}
取决于 HasSignedIn 值,需要显示图像(灰色图标图像/绿色图标图像)
此用户数据来自我正在为这些属性分配值的另一项服务。
如何在 HomePage.xaml 中绑定这些属性?当 HasSignedIn 值发生变化时需要通知,以便显示正确的彩色图像,如果 HasSignedIn 为 false,则 TextBlock 应该是不可见的。
我在 ImageSource 集合中使用了 OnPropertyChanged() 属性。