private void MessageCheck_Checked(object sender, RoutedEventArgs e)
{
if (IsLoaded == false)
return;
var name = (sender as ToggleButton).Name;
var ctl = xGroups.FindName(name) as ToggleButton;
DataManager.LocalData.MessageSelect.GetType().GetProperty(name.Remove(0, 1)).SetValue(DataManager.LocalData.MessageSelect, ctl.IsChecked);
DataManager.Instance.SaveData();
}
private void TelegramMessageSelectPage_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if ((e.NewValue) as bool? == false)
return;
foreach (var item in DataManager.LocalData.MessageSelect.GetType().GetProperties())
{
var ctl = xGroups.FindName($"x{item.Name}") as ToggleButton;
if (ctl != null)
ctl.IsChecked = (bool)item.GetValue(DataManager.LocalData.MessageSelect);
}
}
public class MessageSelectModel
{
public bool IsDeepSleep { get; set; }
public bool IsStartEndMap { get; set; }
public bool IsDriveEnd { get; set; }
}
그냥 바인딩하는게 최고지만 피지 못할경우에는
xIsAutoAfterBlowBtn.IsChecked = DataManager.LocalData.IsAutoAfterBlow; <-이런식으로 노가다 작업하지말고
xName이랑 프로퍼티랑 이름을 같게해서 반복작업을 줄여보자
'wpf' 카테고리의 다른 글
listbox에서 터치스크롤시 화면 전체가 움직일떄 (0) | 2025.01.07 |
---|---|
MEF란? (0) | 2023.06.08 |
[WPF] gRPC Client 빌드 안될때 대처법 (0) | 2023.06.07 |
dynamic property 에서 Set을 할떄 (0) | 2022.12.05 |
public (string name, int age) GetUser() (0) | 2022.10.26 |