Изображение не видно в Gridview в wpf - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь отобразить изображения вместе с данными в элементе данных просмотра списка. Я могу видеть текстовый элемент в представлении списка, но не могу увидеть изображение. Я связываю изображение с путем к файлу изображения. Работает один и тот же путь к изображениюхорошо за пределами просмотра списка на той же странице. Но в представлении списка это не показывает изображение. Но граница (желтый), окружающая элемент управления изображения, видна в виде списка. Пожалуйста, помогите найти решение

<</p>

ListView Name="lvUsers" Grid.Column="1" Grid.Row="1" Margin="0,5,0,0" Height="Auto" 

                                     Background="{x:Null}"  BorderBrush="{x:Null}" 
                ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"
                VirtualizingStackPanel.IsVirtualizing="True" ScrollViewer.CanContentScroll="True"
                SelectionMode="Single" IsSynchronizedWithCurrentItem="True"



                   IsEnabled="True">
            <ListView.View >
                <GridView  >

                    <GridViewColumn  Width="50" >
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <Border Width="30" Height="30" Background="Yellow"  >
                                    <Image Width="10" Height="10" Stretch="Fill"   Source="{Binding Path=DisplayedImage, Mode=Default}"        HorizontalAlignment="Center"  Margin="0,0,0,0" />
                                </Border>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>


                    <GridViewColumn Width="120" DisplayMemberBinding="{Binding EmpName}">
                        <GridViewColumn.Header>
                            <GridViewColumnHeader Tag="EmpName" Click="lvUsersColumnHeader_Click">Name</GridViewColumnHeader>
                        </GridViewColumn.Header>
                    </GridViewColumn>

                </GridView>
            </ListView.View>
        </ListView>

        <Border Width="30" Height="30" CornerRadius="10,10,10,10 "  >
            <Image x:Name="Avatar" Source="{Binding Path=DisplayedImage, Mode=Default}"     VerticalAlignment="Center"   HorizontalAlignment="Center"  Margin="0,0,0,0" />
        </Border>
    </Grid>


</UserControl>

Мой код выглядит следующим образом: Пространство имен и код инициализации страницы:

using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Media;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Configuration;
using System.Data;
using System.Windows.Input;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;


  public ProjectTracker()
    {
        InitializeComponent();


        List<DataTable> items = new List<DataTable>();

        items.Add(loademp());

        lvUsers.ItemsSource = loademp().DefaultView;
         DataContext = new MainSideBar_viewModel();


    }

Модель объекта в представлении для привязки источника изображения:

   public string DisplayedImage
    {

         get { return @"C:\faisal\Xerox2014\wpf\gsktid\P11376fs2.JPG"; }

    }

1 Ответ

0 голосов
/ 22 ноября 2018

Вы можете использовать RelativeSource для привязки к свойству модели представления из CellTemplate:

<GridViewColumn Width="50" >
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <Border Width="30" Height="30" Background="Yellow"  >
                <Image Width="10" Height="10" Stretch="Fill"
                       Source="{Binding Path=DataContext.DisplayedImage, RelativeSource={RelativeSource AncestorType=ListView}}"
                       HorizontalAlignment="Center" Margin="0,0,0,0" />
            </Border>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

По умолчанию DataContext для Image является элементом вItemsSource а у этого нет DisplayedImage свойства, по-видимому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...