2012-06-13 72 views
2

我針對的是框架4.0,這在開發機器上可以正常工作,我可以在啓動時看到帶有顯示綁定消息的文本框的窗體。但是,當我在任何其他機器上部署可執行文件時,它將無法聲稱「無法綁定到DataSource的屬性或列註釋」。非常奇怪的是,如果我編譯的目標是3.5框架,它可以在任何機器上運行。有人可以解釋這種奇怪的行爲?開發環境和客戶機之間有什麼不同?winforms數據綁定僅適用於開發計算機

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; } 
    } 
} 

回答

2

突破4.0的變化。見.Net 4.0 simple binding issue

的解決辦法是使用的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");  
}