설정에 정의된 값에 바인딩
WPF에서 설정에 정의된 값으로 바인딩을 사용할 수 있습니까?가능하다면 샘플을 제공해주세요.
먼저 설정을 정의하는 네임스페이스를 설계하는 커스텀 XML 네임스페이스를 추가해야 합니다.
xmlns:properties="clr-namespace:TestSettings.Properties"
다음으로 XAML 파일에서 다음 구문을 사용하여 기본 설정 인스턴스에 액세스합니다.
{x:Static properties:Settings.Default}
최종 결과 코드는 다음과 같습니다.
<ListBox x:Name="lb"
ItemsSource="{Binding Source={x:Static properties:Settings.Default},
Path=Names}" />
출처: WPF - [설정]에서 정의된 속성에 컨트롤을 바인드하는 방법
주의: @Daniel 및 @nabulke에서 지적했듯이 설정 파일의 액세스 수식자를 다음과 같이 설정하는 것을 잊지 마십시오.Public및 범위:User
위의 해법은 효과가 있지만, 꽤 장황하게...대신 다음과 같이 커스텀 마크업 확장을 사용할 수 있습니다.
<ListBox x:Name="lb" ItemsSource="{my:SettingBinding Names}" />
이 내선번호 코드는 다음과 같습니다.
public class SettingBindingExtension : Binding
{
public SettingBindingExtension()
{
Initialize();
}
public SettingBindingExtension(string path)
:base(path)
{
Initialize();
}
private void Initialize()
{
this.Source = WpfApplication1.Properties.Settings.Default;
this.Mode = BindingMode.TwoWay;
}
}
자세한 내용은 이쪽:http://www.thomaslevesque.com/2008/11/18/wpf-binding-to-application-settings-using-a-markup-extension/
@CSharper의 답변은 VB로 코드화된 WPF 어플리케이션에서는 동작하지 않았습니다.NET(다른 WPF 어플리케이션의 99.999%와 달리 C#이 아님)에서 다음과 같은 오류가 지속적으로 발생했기 때문에Settings에서 찾을 수 없었습니다.MyApp.Properties네임스페이스는 재구축 후에도 사라지지 않습니다.
온라인에서 많이 검색한 후, 나에게 효과가 있었던 것은, 대신에, 그 대신, 그 대신, 그 제품을 사용하는 것이었다.local응용 프로그램의 기본 창 XAML 파일에 기본적으로 생성된 XAML 네임스페이스:
<Window
<!-- Snip -->
xmlns:local="clr-namespace:MyApp"
<!-- Snip -->
><!-- Snip --></Window>
...다음과 같은 방법으로 설정을 바인드합니다(여기서).MyBooleanSetting유형의 프로젝트 속성에서 정의한 설정입니다.Boolean및 스코프 사용자(기본 Friend 액세스 수식자 사용):
<CheckBox IsChecked="{Binding Source={x:Static local:MySettings.Default}, Path=MyBooleanSetting, Mode=TwoWay}"
Content="This is a bound CheckBox."/>
설정이 실제로 보존되고 있는 것을 확인하려면 , 반드시 전화 주세요.
MySettings.Default.Save()
...코드의 이면(예:Me.Closing고객님의 이벤트MainWindow.xaml.vb파일)을 클릭합니다.
(이 Visual Studio 포럼 게시물에 대한 영감을 얻으십시오. Muhammad Siddiqi의 답변을 참조하십시오.)
UserSettings를 바인드하는 방법은 다음과 같습니다.
다음을 입력하여 종속 변수 생성propdp두 번 탭합니다.
public UserSettings userSettings
{
get { return (UserSettings)GetValue(userSettingsProperty); }
set { SetValue(userSettingsProperty, value); }
}
public static readonly DependencyProperty userSettingsProperty =
DependencyProperty.Register("userSettings", typeof(UserSettings), typeof(MainWindow), new PropertyMetadata(UserSettings.Default));
이제 바인딩할 수 있습니다.userSettings기준:
Value="{Binding userSettings.SomeUserSettingHere, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
또한 사용자 설정을 변경할 때 또는 종료 시 다음 방법으로 사용자 설정을 저장해야 합니다.
UserSettings.Default.Save();
언급URL : https://stackoverflow.com/questions/845030/bind-to-a-value-defined-in-the-settings
'programing' 카테고리의 다른 글
| OneDrive를 통한 Excel의 풀네임 속성 (0) | 2023.04.22 |
|---|---|
| WPF 데이터 바인딩 및 검증 규칙의 베스트프랙티스 (0) | 2023.04.22 |
| 표준 VBA 기능을 위한 "프로젝트 또는 라이브러리를 찾을 수 없습니다" (0) | 2023.04.22 |
| 로컬 머신에서 Azure Reposit으로 프로젝트 코드를 Import하는 방법 (0) | 2023.04.22 |
| 변수의 첫 번째 문자 대문자(bash 포함) (0) | 2023.04.22 |