DataTrigger 链接到资源。 Xamarin.Forms
DataTrigger linked to resourse. Xamarin.Forms
需要更改页面背景。我有这样的 class:
class DataClass:INotifyPropertyChanged
{
private string currentTheme;
public string CurrentTheme
{
get { return currentTheme; }
set
{
currentTheme = value;
OnPropertyChanged("CurrentTheme");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string property)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property));
}
}
在我的应用程序的 ResourseDictionary 中有 Data 和 Style:
<local:DataClass x:Key="Data" CurrentTheme="Default"/>
<!-- Styles -->
<Style x:Key="Page"
TargetType="ContentPage">
<Style.Triggers>
<!-- Need to bind it to Data-->
<DataTrigger >
<Setter Property="BackgroundColor"
Value="Aqua"/>
</DataTrigger>
</Style.Triggers>
</Style>
无法将 DataTrigger 绑定到 Data.CurrentTheme。已尝试 BindingContext,但大多有错误。请帮助
如果您尝试为您的应用程序设置主题并且需要在两者之间更改主题,那么您最好使用新的 Xamarin.Forms Themes。您可以通过 nuget 使用预先构建的浅色和深色主题,也可以创建您自己的本地主题并在整个应用程序中使用它。
Creating a Custom Theme 将引导您详细了解如何创建和使用主题的所有步骤。
DataTriggers 与 属性Triggers 非常相似,只是我们不指定 属性,而是指定触发器的 Binding。此绑定通常引用页面上另一个 VisualElement 的 属性,或者它可以引用 ViewModel 中的 属性。
例如:当条目的 Text.Length 属性 为 0 时禁用按钮。
<StackLayout Spacing="20">
<Entry x:Name="emailAddress" Text="" Placeholder="email address"/>
<Button Text="Send">
<Button.Triggers>
<DataTrigger TargetType="Button"
Binding="{Binding Source={x:Reference emailAddress},Path=Text.Length}" Value="0">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Button.Triggers>
</Button>
</StackLayout>
如果您需要更多信息,请阅读 Data Triggers and Triggers in Xamarin.Forms
需要更改页面背景。我有这样的 class:
class DataClass:INotifyPropertyChanged
{
private string currentTheme;
public string CurrentTheme
{
get { return currentTheme; }
set
{
currentTheme = value;
OnPropertyChanged("CurrentTheme");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string property)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property));
}
}
在我的应用程序的 ResourseDictionary 中有 Data 和 Style:
<local:DataClass x:Key="Data" CurrentTheme="Default"/>
<!-- Styles -->
<Style x:Key="Page"
TargetType="ContentPage">
<Style.Triggers>
<!-- Need to bind it to Data-->
<DataTrigger >
<Setter Property="BackgroundColor"
Value="Aqua"/>
</DataTrigger>
</Style.Triggers>
</Style>
无法将 DataTrigger 绑定到 Data.CurrentTheme。已尝试 BindingContext,但大多有错误。请帮助
如果您尝试为您的应用程序设置主题并且需要在两者之间更改主题,那么您最好使用新的 Xamarin.Forms Themes。您可以通过 nuget 使用预先构建的浅色和深色主题,也可以创建您自己的本地主题并在整个应用程序中使用它。
Creating a Custom Theme 将引导您详细了解如何创建和使用主题的所有步骤。
DataTriggers 与 属性Triggers 非常相似,只是我们不指定 属性,而是指定触发器的 Binding。此绑定通常引用页面上另一个 VisualElement 的 属性,或者它可以引用 ViewModel 中的 属性。
例如:当条目的 Text.Length 属性 为 0 时禁用按钮。
<StackLayout Spacing="20">
<Entry x:Name="emailAddress" Text="" Placeholder="email address"/>
<Button Text="Send">
<Button.Triggers>
<DataTrigger TargetType="Button"
Binding="{Binding Source={x:Reference emailAddress},Path=Text.Length}" Value="0">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Button.Triggers>
</Button>
</StackLayout>
如果您需要更多信息,请阅读 Data Triggers and Triggers in Xamarin.Forms