低レベルのWPFをお試しください。私のプロジェクトで問題が発生しました。私は、彼がタブをクリックするとユーザーに表示されるusercontrolの形式を持っています。また、名前のタブの値を抽象クラスのプロパティに保存します。私は、名前のタブの関連するプロパティでformularを埋めたいと思っています。クラスのプロパティからテキストブロックのテキスト値を変更する方法
これを行うには、私のテキストブロックのテキストのプロパティでバインディングメソッドを使用する必要があることを知っています。私はそれを実装するために多くの方法を試しましたが、それらはすべて失敗しました。
は、いくつかのコードをお見せしましょう、私のXAMLがあります:
<TextBlock Name="nomEcole" Text="{Binding NomEcole, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}" Style="{StaticResource Heading2}" Margin="10,10,0,0" />
ユーザーコントロールがあります:(_nomEcoleVisualiseeの値がメソッドによって更新され
public partial class EcoleControl : UserControl, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void FirePropertyChanged(string name)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
private string _nomEcole;
public string NomEcole
{
get { return MainWindow._RE.EcoleVisualisee.Nom; }
set
{
if (MainWindow._RE.EcoleVisualisee.Nom != value)
{
MainWindow._RE.EcoleVisualisee.Nom = value;
this.FirePropertyChanged("NomEcole");
}
}
}
public EcoleControl()
{
this.DataContext = this;
InitializeComponent();
}
}
は、そして、私の抽象クラスがあります):
class RelationEcoles
{
private string _nomEcoleVisualisee;
public string NomEcoleVisualisee
{
get { return _nomEcoleVisualisee; }
set { this._nomEcoleVisualisee = value; }
}
}
ありがとうございました!また、私のプロジェクトがMVVMのように見えるかどうかは分かりません。
本当にmvvmでは、あなたは反転しています:ユーザコントロールはINotifyPropertyChangedを実装してはならないが、RelationEcolesを実装してはいけません。あなたが間違った方法をとっているので、既存のコードを見てください。 – GCamel
あなたはどこにバインドするNomEcoleプロパティを設定していますか? – mm8
@ mm8 RelationEcolesクラスのメソッドで設定します。最近のタブリンクをクリックすると、プロパティの値を変更するメソッドが適用されます。 –