Использование x:Bind с ViewModel UWP

396
09 декабря 2016, 08:48

Не получается сделать x:Bind для DataTemplate

 <models:EffectModel x:Name="EffectModel" x:Key="EffectModel"/>

...

<ListView.ItemTemplate>
  <DataTemplate x:DataType="{StaticResource EffectModel}">
      <TextBlock      
         Text="{x:Bind Title}"/>
      </DataTemplate>
 </ListView.ItemTemplate>

Title это public string свойство. Постоянно пишет на Title, что его нет в контексте MainPage. Почему он не обращается к EffectModel

public class EffectModel
{
    public string Title { get; set; }
    public Uri FrameImage { get; set; }
}

UPD

 <DataTemplate x:DataType="models:EffectModel">
                <Border    
            Width="400"
            Height="240">
                    <Border.Background>
                        <ImageBrush 
                            Stretch="Fill" 
                            ImageSource="{x:Bind FrameImage}"/>
                    </Border.Background>
                </Border>
            </DataTemplate>
Answer 1

В случае x:Bind на свойство типа string в DataTempate, как подсказал пользователь VladD, необходимо указать x:DataType="model: Ваша модель в которой лежит свойство" В случае с x:Bind картинки со страницы на свойство типа Uri необходим еще и конвертер.

Код конвертера:

public sealed class ImageConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter,string culture)
    {
        if (value is string)
            return new BitmapImage(new Uri((string)value, UriKind.RelativeOrAbsolute));
        if (value is Uri)
            return new BitmapImage((Uri)value);
        throw new NotSupportedException();
    }
    public object ConvertBack(object value, Type targetType, object parameter, string culture)
    {
        throw new NotSupportedException();
    }
}

На Xaml выглядеть будет следующим образом:

ImageSource="{x:Bind FrameImage, Converter={StaticResource ImageConverter}}"/>

ImageConvertor объявлен в App.xaml

READ ALSO
Удаление файла C# Winfrom consoleapp

Удаление файла C# Winfrom consoleapp

Мое WinForms приложение может вызывать консольное, которое завершает процесс приложение WinForms и удаляет егоКогда я запускаю консольное приложение...

235
Сравнение двух одномерных массивов C#

Сравнение двух одномерных массивов C#

День добрый, ситуация следующая:

504
Многопоточность, блокировка доступа

Многопоточность, блокировка доступа

Есть приведенный ниже код, суть в том, что функции Add(), Read(), Modify(), Remove(), вызываются извне и в хаотичном порядке, с разным периодом во времени

233
Нужен пример ssh client на C#, с использованием granados

Нужен пример ssh client на C#, с использованием granados

Добрый вечерВстала задача написать SSH client на C#, и после долгих поисков по просторам интернета и чтения разных статей, постов и вопросов-ответов...

339