簡體   English   中英

如何擺脫xaml WP8.1中的命名空間錯誤

[英]How to get rid of the namespace error in xaml WP8.1

我正在使用Windows Phone 8.1投影機,並且當前在使用BooleanToVisibility Converter時遇到問題。

命名空間

這是轉換器本身:

public class BooleanToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        if (!(value is bool))
            return Visibility.Collapsed;
        bool objValue = (bool)value;
        if (objValue)
        {
            return Visibility.Visible;
        }
        return Visibility.Collapsed;

    }
    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}

這是我的Xaml:

<Page
x:Class="CityBox.MainPage"
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"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="using:CityBox.Views"
xmlns:converters="using:CityBox.Converters"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
DataContext="{Binding Main, Source={StaticResource Locator}}"
x:Name="MyMainPage">

<Page.Resources>
    <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</Page.Resources>


<Grid>
    <views:DataLoadingView x:Name="DataLoadingView" 
                           Visibility="{Binding LoadingViewVisibility, Converter={StaticResource BooleanToVisibilityConverter}}"/>
    <views:DrawerView  x:Name="DrawerView"  
                       Visibility="{Binding DrawerViewVisibility, Converter={StaticResource BooleanToVisibilityConverter}}" />
</Grid>
</Page>

最后從我的ViewModel中獲取我的布爾值:

private bool _loadingViewVisibility;
    private bool _drawerViewVisibility;

    public bool LoadingViewVisibility
    {
        get { return _loadingViewVisibility;}
        set
        {
            _loadingViewVisibility = value;
            RaisePropertyChanged("LoadingViewVisibility");
        }
    }
    public bool DrawerViewVisibility
    {
        get { return _drawerViewVisibility; }
        set
        {
            _drawerViewVisibility = value;
            RaisePropertyChanged("DrawerViewVisibility");
        }
    }

我不明白的一件事是問題可能來自資源(在xaml中),我有某種警告告訴我“ BooleanToVisibilityConverter”不在指定的命名空間中,這很奇怪,因為它由reshaper自動添加。 我以為這只是VS的一個錯誤,有時會發生,但是當我更改布爾值時它不起作用。

希望我足夠精確,能為您提供幫助! 預先感謝,紀堯姆。

XAML錯誤

編輯:我只是運行了一些測試,這是有趣的事情:

    <Grid>
    <!--<TextBlock Text="Test1" Visibility="{Binding Test2, Converter={StaticResource BooleanToVisibilityConverter}}"/>
    <TextBlock Text="Test2" Visibility="{Binding Test1, Converter={StaticResource BooleanToVisibilityConverter}}"/>-->
    <views:LoadingView Visibility="{Binding Test2, Converter={StaticResource BooleanToVisibilityConverter}}"/>
        <views:DrawerView Visibility="{Binding Test1, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</Grid>

如果我取消注釋這兩個文本塊並注釋我的兩個視圖,那么它將起作用。 如果我以其他方式這樣做,它不會。 在每個視圖中,簡單地放置一個Textblock,上面寫着“ Loading”和“ Drawer”。 在我取消注釋兩個視圖並嘗試通過將bool設置為false來隱藏一個視圖的情況下,這兩個視圖在屏幕上可見。 如果我用兩個文本框來做,那不會發生!

將您的xml更改為:

<Page
x:Class="CityBox.MainPage"
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"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:views="using:CityBox.Views"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
DataContext="{Binding Main, Source={StaticResource Locator}}"
x:Name="MyMainPage">

<Page.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</Page.Resources>

<Grid>
<views:DataLoadingView x:Name="DataLoadingView" 
                       Visibility="{Binding LoadingViewVisibility, Converter={StaticResource BooleanToVisibilityConverter}}"/>
<views:DrawerView  x:Name="DrawerView"  
                   Visibility="{Binding DrawerViewVisibility, Converter={StaticResource BooleanToVisibilityConverter}}" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM