2

フレームワーク4.0をターゲットにしていますが、これは開発マシンで正常に機能します。起動時に、バインドされたメッセージを表示するテキストボックスを含むフォームを確認できます。しかし、実行可能ファイルを他のマシンにデプロイすると、「データソースのプロパティまたは列のメモにバインドできない」と主張しても機能しません。非常に奇妙なことは、3.5フレームワークをターゲットにしてコンパイルすれば、どのマシンでもうまく機能することです。誰かがこの奇妙な行動を説明できますか?開発環境とクライアントマシンの違いは何ですか?

namespace Demo
{
    public partial class Form1 : Form
    {
        private readonly SimpleDataContext _dataContext;

        public Form1()
        {
            InitializeComponent();

            _dataContext = new SimpleDataContext { Prop = new SimpleProp { Note = "hi!" }};
            textBox1.DataBindings.Add("Text", _dataContext, "Prop.Note");         
        }
    }

    public class SimpleDataContext
    {
        public SimpleProp Prop { get; set; }
    }

    public class SimpleProp
    {
        public string Note { get; set; }
    }  
}
4

1 に答える 1

2

4.0での重大な変更。.Net4.0の単純なバインディングの問題を参照してください

回避策は、BindingSourceを使用することです。

public Form1() {
  InitializeComponent();
  _dataContext = new SimpleDataContext { Prop = new SimpleProp { Note = "hi!" } };
  BindingSource bs = new BindingSource(_dataContext, null);
  textBox1.DataBindings.Add("Text", bs, "Prop.Note");    
}
于 2012-06-13T21:49:59.663 に答える