私は現在、顧客クラスからのリクエストをwinformに解析しようとしています。 私は作成したWCFサービスを通じてコンテンツを取得しています。ここでC#winformsデータがwcfリクエストにテキストボックスをバインドする
はForm1のコードです:ここで
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_search_Click(object sender, EventArgs e)
{
Dictionary<string, string> dict = new Dictionary<string, string>();
int valueParsed;
if(txt_KNr.TextLength == 6)
{
if(Int32.TryParse(txt_KNr.Text.Trim(), out valueParsed))
{
Service svc = new Service();
WcfServiceGVO.CustomerData data = svc.Connect(txt_KNr.Text);
dict = svc.SplitData(data);
txt_FirstName.DataBindings.Add("Text", data, "FirstName", false, DataSourceUpdateMode.OnPropertyChanged);
txt_LastName.DataBindings.Add("Text", data, "LastName");
txt_Street.DataBindings.Add("Text", data, "Street");
txt_PLZ.DataBindings.Add("Text", data, "PLZ");
txt_Location.DataBindings.Add("Text", data, "Location");
lbl_ampErg.DataBindings.Add("Text", data, "Ampel");
}}
がReference.csの一部
public string LastName {
get {
return this.LastNameField;
}
set {
if ((object.ReferenceEquals(this.LastNameField, value) != true)) {
this.LastNameField = value;
this.RaisePropertyChanged("LastName");
}
}
}
であることが初めて動作しますが、二回目は、コンパイラは2つのバインディングが(あると言いますだから私のDataBindings button_Clickではなく、InitializeComponent()の下にあるべきではないと思います 私はそれを行う場合、コードが実行されますが、テキストボックスを更新しません。私の要求がサーバーからデータを取得するとすぐにテキストボックスが更新されるように、私は何を変更する必要がありますか?プロパティーが変更された場合は、インターフェースを更新する必要があります。
あなたはそのコード例を提供できますか? – Zoba
最初のオプションは必ずあなたの問題を解決します。 2番目のオプションは、このリンクを読んでください:[新しいデータソースの追加](https://msdn.microsoft.com/en-us/library/8s2t4x15.aspx)特にこの部分[サービスのデータソース](https:// msdn 。microsoft.com/en-us/library/8s2t4x15.aspx#Anchor_1) –
手順は非常に簡単です。プロジェクトへのサービス参照を追加すると、必要な型が 'DataSource'ウィンドウに追加されます。項目を手動でウィンドウに追加することもできます。 'CustomerData'の近くのドロップダウンを使用して' Details'モードを選択し、 'CustomerData'をドラッグしてフォームにドロップすると、' BindingSource'とセットアップデータバインディングが表示されますあなたとあなたは必要に応じてそれらを変更します。それで、実行時にデータを取得し、 'BindingSource'の' DataSource'に割り当てるだけで十分です。 –