Как сказал Джейсон, вы должны привязать эти свойства к свойствам модели или модели представления. Называть элемент управления пользовательского интерфейса в шаблоне бессмысленно.
Например, у вас есть controltemplate в App.xaml, вы должны использоватьпривязка для источника SvgCachedImage.
<ControlTemplate x:Key="MainPageTemplate">
<Grid BackgroundColor="White" VerticalOptions="Center">
<ffimageloadingsvg:SvgCachedImage x:Name="LogoIcon" Source="{TemplateBinding BindingContext.Url}" />
<ContentPresenter />
</Grid>
</ControlTemplate>
Теперь, на многих страницах контента, вы должны назначить другое значение для этого.
<ContentPage
x:Class="demo2.dictionary.Page1"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<ContentView
x:Name="contentView"
Padding="0,20,0,0"
ControlTemplate="{StaticResource MainPageTemplate}">
<StackLayout>
<Label
HorizontalOptions="CenterAndExpand"
Text="Welcome to Xamarin.Forms!"
VerticalOptions="CenterAndExpand" />
</StackLayout>
</ContentView>
public partial class Page1 : ContentPage, INotifyPropertyChanged
{
private string _Url;
public string Url
{
get { return _Url; }
set
{
_Url = value;
RaisePropertyChanged("Url");
}
}
public Page1 ()
{
InitializeComponent ();
Url = "a11.jpg";
this.BindingContext = this;
}
public event PropertyChangedEventHandler PropertyChanged;
public void RaisePropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Если мой ответ решенВаша проблема, пожалуйста, не забудьте пометить ответ как ответ, спасибо.