在 Windows Phone 8 应用中将转换器绑定到 XAML
本文关键字:转换器 绑定 XAML Windows Phone 应用 | 更新日期: 2023-09-27 18:36:18
my .xaml 页面代码:
<phone:PhoneApplicationPage
x:Class="MVVM1Test.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converter="clr-namespace:MVVM1Test.Resources.Converters"
mc:Ignorable="d"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<phone:PhoneApplicationPage.Resources>
<converter:NotConverter x:Name="not"></converter:NotConverter>
</phone:PhoneApplicationPage.Resources>
<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Gray">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
</Grid>
</phone:PhoneApplicationPage>
不转换器.cs
namespace MVVM1Test.Resources.Converters
{
public class NotConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return !(bool)value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return !(bool)value;
}
}
}
它显示错误
"命名空间 clr-namespace:MVVM1Test.Resources.Converters 中不存在名称 NotConverter"
但是我也将转换器类添加到解决方案中。
将项目放入资源字典中时,必须为它们提供密钥。x:Name
属性是冗余的(除非需要从代码隐藏访问对象)。
<converter:NotConverter x:Key="not" />
此外,您遇到的错误可能是设计时问题。尝试在我建议的更改后编译并运行。
这可能会
对你有所帮助
xmlns:MyAppConverters="clr-namespace:MyApp.Converters"
和
<phone:PhoneApplicationPage.Resources>
<MyAppConverters:CustomConverter x:Key="customConverter"/>
</phone:PhoneApplicationPage.Resources>
我已经给出了您可以将类名更改为您的示例
我有一个类似的命名空间问题。对我来说,重新启动Visual Studio似乎解决了这个问题。当然,您必须确保在IValueConverter类中正确定义了命名空间。例如命名空间 MVVM1Test.Resources.Converters
保存并重新启动视觉工作室。