首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库属性未找到,为什么?

数据库属性未找到,为什么?
EN

Stack Overflow用户
提问于 2012-04-20 16:39:31
回答 2查看 792关注 0票数 2

请帮助我,为什么这个绑定不起作用,我想从PlayerBar.xaml (数据文本是PlayerBarPresenter )绑定到PlayerBarPresenter.Card1.ImgCard =binding{SourceCard1,Path = ImgCard},而不是这个异常。

类型'System.IO.FileNotFoundException‘的第一次机会异常发生在mscorlib.dll System.Windows.Data Error: BindingExpression路径错误:'Card1’'System.String‘(HashCode=949723141)上找不到的'ImgCard’属性。BindingExpression: Path='ImgCard‘DataItem=’Card1 1‘(HashCode=949723141);目标元素是'System.Windows.Controls.Image’(名称=‘’);目标属性是'Source‘(键入’System.Windows.Media.ImageSource‘)。

如果在TablePresenter中的相同属性中存在该文件,则会找到该文件,但我希望绑定到TablePresenter.Card1.ImgCard中。

UserControl x:Class="poki.View.PlayerBar“数据上下文是TablePresenter

代码语言:javascript
复制
    <Image Width="50" Height="80" Source="{Binding Source=Card1, Path=ImgCard}" RenderTransformOrigin="0.5,0.5" Canvas.Left="108.358"
Canvas.Top="-8.349">

TablePresenter.cs

代码语言:javascript
复制
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using poki.View;
using System.Windows.Media.Imaging;
using poki.Model;

namespace poki.Presenters
{
    public class PlayerBarPresenter : PresenterBase<PlayerBar>
    {

        private BitmapImage playerImage;
        public BitmapImage PlayerImage
        {
            get { return playerImage; }
            set
            {
                playerImage = value;
                OnPropertyChanged("PlayerImage");
            }
        }

        private Card card1;
        public Card Card1
        {
            get { return card1; }
            set
            {
                card1 = value;
                OnPropertyChanged("Card1");
            }
        }



#endregion


        public PlayerBarPresenter(PlayerBar pb) : base(pb)
        {
            Card1 = new Card(22);

            Card1.S = "fasyom";           
        }
    }
}

table.cs

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using poki.Presenters;
using System.Windows.Media.Imaging;
using poki.Model;

namespace poki.View
{
    public partial class Table : PhoneApplicationPage
    {
        public TablePresenter Presenter { get { return this.DataContext as TablePresenter; } }

        public Table()
        {
            this.Loaded += new RoutedEventHandler(Table_Loaded);
            InitializeComponent();
        }

        void Table_Loaded(object sender, RoutedEventArgs e)
        {
            DataContext = new TablePresenter(this); 

            PlayerBarPresenter a = new PlayerBarPresenter(new PlayerBar());


            //a.Card1.ImgCard = new BitmapImage(new Uri("/Datas/Images/1/7.png", UriKind.Relative));
            //a.Card2 = new BitmapImage(new Uri("/Datas/Images/1/7.png",UriKind.Relative));
            gridTable.Children.Add(a.View);
        }




    }
}

card.cs

代码语言:javascript
复制
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Media.Imaging;

namespace poki.Model
{
    public class Card : Notifier
    {
        public int card { get; set; }

        public Card(int Card1)
        {
            card = Card1;
            ImgCard = new BitmapImage(new Uri("/Datas/Images/1/7.png", UriKind.Relative)); //new BitmapImage(new Uri("/Datas/Images/Cards/" + Suit + "/" + Rank + ".png",UriKind.Relative)); 

        }        

        public int Suit
        {
            get { return card / 13; }
        }

        public int Rank
        {
            get { return card % 13; }
        }


        private BitmapImage imgCard;
        public BitmapImage ImgCard
        {
            get { return imgCard; }
            set
            {
                imgCard = value;
                OnPropertyChanged("ImgCard");
            }
        }



    }
}
EN

回答 2

Stack Overflow用户

发布于 2012-04-20 16:44:00

认为您的绑定表达式是错误的,请尝试如下:

代码语言:javascript
复制
<Image Width="50" Height="80" Source="{Binding Card1.ImgCard}" RenderTransformOrigin="0.5,0.5" Canvas.Left="108.358" Canvas.Top="-8.349">
票数 5
EN

Stack Overflow用户

发布于 2012-04-20 16:42:34

您将Source设置为字符串"Card1",当然它没有任何您期望的属性。由于卡在DataContext中,您将希望扩展Path (Path=Card1.ImgCard),在绑定到DataContext时不要设置任何源,也不要设置将用于代替DataContext的源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10250148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档