0
我對WPF很陌生,我在winforms中有數據綁定,但是我正要將我的頭髮拉出來試圖簡單地將文本框綁定到屬性。綁定到另一個類中的屬性WPF
我只是想我的選擇類綁定到不同的控件,一個我目前正試圖綁定是AppCliOptions.CLIPath
我第一次只想說我一直在現在這一個現在幾天,每天花費一個小時左右的時間來弄清楚什麼是錯誤的。然而,我沒有找到任何具體的東西,我想要做什麼,也許我只是忽略它,或者我還沒有得到WPF和XAML,我相信這是簡單的。
我確實看到一些說你不能綁定到一個靜態類,但我的類不是靜態的,只是我對該實例的引用是。
我有一個靜態單例類,這是一個例子。
public abstract class AppOptionsBase<T> : INotifyPropertyChanged where T : AppOptionsBase<T>, new()
{
protected static T instance = new T();
public event PropertyChangedEventHandler PropertyChanged;
public static T Instance => instance;
protected AppOptionsBase() { }
protected void OnPropertyChanged(string name)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
}
public class AppCliOptions : AppOptionsBase<AppCliOptions>
{
private string _cliPath;
public string CLIPath { get => _cliPath; set { _cliPath = value; OnPropertyChanged("CLIPath"); } }
public AppCliOptions()
{
//Set defaults
CLIPath = @"C:\Path\to\CLI.exe";
}
}
我Xaml.cs文件
public static AppCliOptions CLIOptions => AppCliOptions.Instance;
我的.xaml文件
<TextBox Grid.Row="1" Grid.Column="0" DataContext="{Binding CLIOptions}" Text="{Binding Path=CLIPath}" BorderBrush="Black"/>
文本框的文本始終是空白的,如果我通過代碼調用CLIOptions.CLIPath我得到默認價值如預期。 在完成了所有的閱讀之後,我嘗試了幾十種不同的方法來嘗試和綁定到這個,但我似乎無法讓它工作。