我有 Xamarin.Forms 项目与pcl-part和原生win,ios和android部分。 所有页面结构和视图模型都在pcl-part中。应用程序工作很好,但是当我试图将Grid隐藏在代码背后时 - 它什么都不做。这是代码示例:
的Xaml :
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="SomeNamespase.SomePage">
<Grid x:Name="InnerGrid" BackgroundColor="Green">
<Frame x:Name="InnerContent"/>
</Grid>
</ContentPage>
.cs :
using System;
namespace SomeNamespase
{
public partial class SomePage : ContentPage
{
public void SomeMethod()
{
this.InnerGrid.IsVisible = false;
this.InnerContent.BackgroundColor = Color.Aqua;
}
}
}
我也试过this.FindByName<Grid>("InnerGrid");
相同的结果
注意:如果我试图从PCL中获取控件,一切都很好。当我试图在Windows(或其他平台)项目中从ViewPresenter获取控件时,没有任何事情发生。
答案 0 :(得分:0)
您需要确保正确实施INotifyPropertyChanged
protected virtual void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
答案 1 :(得分:0)
请尝试以下代码,因为在代码中我看不到构造函数。
using System;
namespace SomeNamespase
{
public partial class SomePage : ContentPage
{
public SomePage()
{
SomeMethod() ;
}
public void SomeMethod()
{
this.InnerGrid.IsVisible = false;
this.InnerContent.BackgroundColor = Color.Aqua;
}
}
}