を表示するバインディング:UWP:私の見解モデルではモデルプロパティ
public string MyProperty{ get; set; }
public MyViewModel()
{
MyProperty = "hello";
}
私は、文字列プロパティを定義しています。
は今、私のページから、私は、このプロパティにバインドする:
Text="{Binding MyProperty}"
が、これは動作していない - 何のテキストが表示されません。私は何が欠けていますか?
編集: 私のビューモデルが継承から:
public class Observable : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void Set<T>(ref T storage, T value, [CallerMemberName]string propertyName = null)
{
if (Equals(storage, value))
{
return;
}
storage = value;
OnPropertyChanged(propertyName);
}
protected void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
編集2:
private string _myProperty;
public string MyProperty
{
get => _myProperty;
set => Set(ref _myProperty, value);
}
public MyViewModel()
{
_myProperty = "hello";
}
とXAML::私は私のビューモデルを変更した
Text="{Binding MyProperty, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
まだ動作していません。
編集3:
public sealed partial class MyControl : UserControl
{
public MyControl()
{
InitializeComponent();
DataContext = this;
}
public string Text
{
get => (string)GetValue(s_textProperty);
set => SetValue(s_textProperty, value);
}
public static readonly DependencyProperty s_textProperty =
DependencyProperty.Register("Text", typeof(string), typeof(MyControl), new PropertyMetadata(null));
}
と私が持っているコントロールのXAMLで:
<TextBlock Text="{Binding Text}" />
私はこの問題は、Text
プロパティは、カスタムコントロールの登録依存関係プロパティであるということだと思いますこれは:
<MyControl Text="{Binding MyProperty}"/>
です私はカスタムコントロールを使用するページで。
ビューにdatacontextを設定しましたか? var view = new MyView(); var viewModel = new MyViewModel(); view.DataContext = viewModel; – JanMer
@JanWidmer私は持っています。 – Eutherpy
ラベルのテキストをバインドしますか? – JanMer