2016-04-22 3 views
1

У меня закончились идеи по попытке изменить свойство DatePicker Format в XAML с помощью OnIdiom. Я попытался использовать стили XAML, я попытался определить строку в файле Constants.cs и ссылаться на нее из XAML. Единственный другой способ, который я могу придумать, - это расширить DatePicker и установить его там. Кто-нибудь получил это, чтобы работать?Xamarin Forms DatePicker Format Style

Ниже перечислены все, что не работает.

Global Style с OnIdiom:

<Style TargetType="DatePicker"> 
    <Setter Property="Format"> 
     <OnIdiom x:TypeArguments="x:String" 
       Tablet="D" 
       Phone="d"/> 
    </Setter> 
</Style> 

Глобальный стиль ссылок на строку, определенную в моем файле класса Constants.cs, который использует Device.Idiom == TargetIdiom.Phone ? "d" : "D";

<Style TargetType="DatePicker"> 
    <Setter Property="Format" Value="{x:Static map:Constants.LongDateTimeStringFormat}"/> 
</Style> 

Попытка определить только строку с ключом:

<OnIdiom x:Key="LongDateTimeStringFormat" 
     x:TypeArguments="x:String" 
     Tablet="D" 
     Phone="d"/> 

Попытка только определить строку с ключом другой способ:

<x:String x:Key="LongDateTimeStringFormat"> 
    <OnIdiom x:TypeArguments="x:String" 
      Tablet="D" 
      Phone="d"/> 
</x:String> 

Он также не работает при попытке использовать <OnIdiom> в пределах <DatePicker.Format> непосредственно, без стилей, или пытаться установить DatePicker.Format в {x:Static map:Constants.LongDateTimeStringFormat}.

ответ

1

Ну ... похоже, сейчас он работает в другом проекте. Добавление следующего глобального стиля не дает мне исключения формата, как это было вчера.

<Style TargetType="DatePicker"> 
    <Setter Property="Format"> 
     <OnIdiom x:TypeArguments="x:String" 
       Tablet="D" 
       Phone="d"/> 
    </Setter> 
</Style> 

Может потребоваться расследовать несколько позже.