我想為用戶設定創建一個 WPF 視窗,并將控制元件系結到 Properties.Settings.Default 中定義的用戶設定。聽起來很簡單,就像幾乎所有應用程式都在做的事情。但是,我似乎無法實作雙向系結,即控制元件顯示值,但用戶輸入未寫回設定物件。這是帶有畫布的 XAML 的一部分,畫布定義了資料背景關系并包含一些控制元件。
<Canvas x:Name="CanvasMain">
<Canvas.DataContext>
<Properties:Settings/>
</Canvas.DataContext>
<CheckBox x:Name="chkThingEnabled" Content="Thing" Height="20" Canvas.Left="19" Canvas.Top="64" Width="106" IsChecked="{Binding ThingEnabled}"/>
<TextBox Canvas.Left="19" Text="{Binding TestText}" Canvas.Top="104" Width="120"/>
</Canvas>
只需在專案的默認設定網格中輸入設定: ThingEnabled:Type = bool,Scope = User,Value = False TestText:Type = string,Scope = User,Value = "TEST"
如何進行此資料系結,以便將控制元件值的更改寫入設定的系結屬性?
uj5u.com熱心網友回復:
像這樣的表達
<Properties:Settings/>
將創建 Settings 類的新實體。
為了系結到命名空間中類的靜態Default屬性,您需要適當的 XAML 命名空間宣告和適當的 Binding 運算式,括號中包含靜態屬性路徑。SettingsYourApplication.Properties
您還應該考慮使用合適的布局面板。帆布在這里不是正確的東西。
像這樣的東西應該作業:
<Window ...
xmlns:properties="clr-namespace:YourApplication.Properties">
<StackPanel DataContext="{Binding Path=(properties:Settings.Default)}">
<CheckBox IsChecked="{Binding ThingEnabled}" .../>
<TextBox Text="{Binding TestText}" .../>
</StackPanel>
</Window>
uj5u.com熱心網友回復:
您需要Properties.Settings.Default.Save()在關閉應用程式之前呼叫方法以使設定保持不變。請參閱如何:使用 C# 在運行時撰寫用戶設定。
實際上,這種方法不太方便,因為用戶設定檔案的路徑取決于您的應用程式的版本號,并且在您更改版本時不會傳遞到較新的版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/466564.html
