【问题标题】:WPF retrieving image path as stringWPF以字符串形式检索图像路径
【发布时间】:2018-03-18 13:50:03
【问题描述】:

我有一个包含少量图像项的 ListView。我想在字符串中单击项目路径(图像)并将其作为值输入数据库。谢谢。

XML

<ListView  x:Name="LvImagini" ScrollViewer.HorizontalScrollBarVisibility="Disabled" HorizontalAlignment="Left" Height="200" Margin="215,299,0,0" VerticalAlignment="Top" Width="200">
    <ListViewItem>
        <Image Source="/imagini/1.png" Width="170" Height="180"/>
    </ListViewItem>
    <ListViewItem>
        <Image Source="/imagini/2.png" Width="170" Height="180"/>
    </ListViewItem>
</ListView>

按钮功能

private void btnRegSucces_Click(object sender, RoutedEventArgs e)
{
        try 
        {
            con.Open();
            String query = "INSERT into jucatori(utilizator,password) VALUES('" + tbxUtilizator.Text + "','" + tbxParola.Password + "')";

            SqlDataAdapter sda = new SqlDataAdapter(query, con);
            sda.SelectCommand.ExecuteNonQuery();

            con.Close();

            //String geo = LvImagini.SelectedItem.ToString();
        }
        catch
        {
            LabelError.Content = "E R O A R E!";
        }
    }   

【问题讨论】:

标签: c# wpf listview data-binding


【解决方案1】:

我假设您在从所选图像获取源属性时遇到问题,而不是从实际的数据库查询中获取。

    private void ListViewItem_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        var source= ((Image)((ListViewItem)sender).Content).Source;
    }

XAML

        <ListView HorizontalAlignment="Left" Height="257" Margin="135,52,0,0" VerticalAlignment="Top" Width="322">
        <ListViewItem>
            <Image Source="\imagini\1.jpg" Width="170" Height="180"/>
        </ListViewItem>
        <ListViewItem>
            <Image Source="\imagini\2.jpg" Width="170" Height="180"/>
        </ListViewItem>
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <EventSetter Event="PreviewMouseLeftButtonDown" Handler="ListViewItem_PreviewMouseLeftButtonDown" />
            </Style>
        </ListView.ItemContainerStyle>
    </ListView>

【讨论】:

    【解决方案2】:

    从 XAML 标记中获取源代码并不容易,因为它会在后台转换为包 URI,但应该可以这样做:

    ListViewItem selectedItem = LvImagini.SelectedItem as ListViewItem;
    Image image = selectedItem.Content as Image;
    string source = image.Source.ToString();
    string path = source.Substring(source.IndexOf("pack://application:,,,/") + 23);
    

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 2019-02-10
      • 2015-10-23
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多