0

なぜこれを行うのかわかりません...

わかりやすくするために、問題を単純化しています。データ バインディングに参加する 2 つの変数があります。1 つの変数は正常にフェッチされますが、もう 1 つの変数はフェッチされません。

例.xaml.cs:

public partial class Example : UserControl
{
    private string _name;
    private string _area;
    private AppClass _app;

    public Example(string name, AppClass app)
    {
        InitializeComponent();
        _name = name;
        _app = app;
        this.DataContext = this;
        InitializeData();
    }

    private void InitializeData()
    {
        if (_app != null)
        {
            _area = _app.GetArea();
        }
    }

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    public string Area
    {
        get { return _area; }
        set { _area = value; }
    }
}

そして、私の Example.xaml (興味のある行だけ):

<TextBlock Grid.Row='0' Grid.Column ='0' Padding='5,0,0,0' Background='LightBlue' Text='Exchanger'/>
<TextBlock Grid.Row='0' Grid.Column ='1' Background='LightBlue' Text="{Binding Name}" TextAlignment='Center'/>

<TextBlock Grid.Row='2' Grid.Column ='0' Padding='5,0,0,0' Background='LightCyan' Text='Area'/>
<TextBlock Grid.Row='2' Grid.Column ='1' Background='LightCyan' Text="{Binding Area}" TextAlignment='Center'/>

興味深いことに、Area正常に呼び出されますが、そうでNameはありません。Nameandの getter にブレークポイントを設定すると、ブレークしますが、 ではブレークしAreaませAreaName。私は困惑しています...

4

1 に答える 1

1

Nameプロパティは で定義されていますFrameworkElement。プロパティ名を別のものに変更します。

また、UI はデータを保存する適切な場所ではありません。その代わりに、データを保持する適切な ViewModel を作成し、ユーザー コントロールがその ViewModel にバインドされていることを確認してください。

于 2013-03-15T21:44:59.967 に答える