2016-04-18 2 views
0

Я делаю приложение UWP, и мне трудно загружать и привязывать изображение с помощью приложения UWP, как это сделать?Как загрузить и связать изображение, содержащееся в переносной библиотеке в приложении UWP?

Моя текущая структура:

MyApp.Model: 
| 
|-Models 
    |-MyModel.cs 
    |-MyModelContainer.cs 
|-Resources 
    |-image1.png 
    |-image2.png 
    |-image3.png 

Мои Xaml в другом проекте (выиграть 10 универсальное приложение и ссылку на этот портативный библиотеки классов.)

MyModelContainer только одноэлементно контейнер, экземпляр IEnumerable<MyModel>. Вот их содержание:

public class MyModel{ 
    public String Name{get;set;} 
    public ??????? Icon {get;set;} 
} 

public static class MyModelContainer{ 
    private static IEnumerable<MyModel> _myModelList; 

    public static IEnumerable<MyModel> MyModelList{get{ 
     if(_myModelList==null){ 
      Initialize(); 
     } 
     return _myModelList; 
    }} 

    private static Initialize(){ 
     _myModelList = new List<MyModel>() { 
      new MyModel(){ 
       Name = "Model one" 
       Icon = ??????? 
      } 
     }; 
    } 
} 

На каком-то месте в моем XAML я получаю список MyModel, в ItemsControl:

<ItemsControl ItemsSource="{Binding MyModelListProperty}" > 
    <ItemsControl.ItemsPanel > 
     <ItemsPanelTemplate> 
      <StackPanel/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate > 
      <Button Margin="10" MinHeight="50" MinWidth="40" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" > 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="*"></RowDefinition> 
         <RowDefinition Height="Auto"></RowDefinition> 
        </Grid.RowDefinitions> 
        <Image Source="{Binding Icon}" ></Image> 
        <TextBlock Grid.Row="1" Text="{Binding Name}" ></TextBlock> 
       </Grid> 
      </Button> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl>^ 

Мои вопросы:

  1. Какой тип свойство, которое я должен использовать для привязки изображения (I hardt было BitmapImage?
  2. Как мне создать это свойство? d Icon = new BitmapImage(new Uri("ms-appx://MyApp.Model/Resources/image1.png")) без везения, у меня нет загруженного изображения (и срабатывает событие ImageFailed).
  3. Как связать это свойство с <Image/>?

Это для приложения UWP (Windows 10), а не WPF, а не win8.

спасибо.

EDIT

Вот структура папок

MyApp == AstroApp 
MyApp.Model == AstroApp.Model 
MyModel = AstroSign 
MyModelContainer = AstroManager 

enter image description here

+0

Тест Archana

+0

@LovetoCode И как создается ImageUrl? Является ли это строкой или URI, какой формат? – J4N

+0

Его в строке. Или просто укажите url для свойства Source. BitmapImage будет создан автоматически. <Источник изображения = "{Значок привязки}">. Пусть значок «ms-appx: ///MyApp.Model/Resources/image1.png» – Archana

ответ

1

Если изображение находится в том же проекте, что MyModelContainer, это должно работать:

public class MyModel{ 
    public String Name{get;set;} 
    public ImageSource Icon {get;set;} 
} 

public static class MyModelContainer{ 
    private static IEnumerable<MyModel> _myModelList; 

    public static IEnumerable<MyModel> MyModelList{get{ 
     if(_myModelList==null){ 
      Initialize(); 
     } 
     return _myModelList; 
    }} 

    private static Initialize(){ 
     _myModelList = new List<MyModel>() { 
      new MyModel(){ 
       Name = "Model one" 
       Icon = new BitmapImage(new Uri("ms-appx:///Resources/image1.png")); 
      } 
     }; 
    } 
} 

Если вы г изображение находится в другой сборке, использовать этот URL:

Icon = new BitmapImage(new Uri("ms-appx:///NameOfProjectWithImage/Resources/image1.png")); 
+0

Это тот же проект, но не тот же проект, что и XAML. Я попробовал ваш пример, но у меня все равно нет привязки изображения и запускается событие «Image.ImageFailed» :( – J4N

+0

И если вы попробуете ms-appx: ///NameOfProjectWithImage/Resources/image1.png? – Evk

+0

То же самое (это то, что Я сказал, что попробовал). Каково ожидаемое действие сборки для изображений? – J4N