class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter your name: ");
string name = Console.ReadLine();
char[] charArr = name.ToCharArray();
Array.Reverse(charArr);
string reName = string.Join("",charArr);
Console.WriteLine(reName);
Console.ReadKey();
}
}
public class Item : BaseViewModel
{
private string _name;
public string Name
{
get => _name;
set
{
_name = value;
RaisePropertyChanged();
}
}
private int _itemMode;
public int ItemMode
{
get => _itemMode;
set
{
_itemMode = value;
RaisePropertyChanged();
}
}
}
public class ItemsList
{
public ObservableCollection<Item> Items { get; } = new ObservableCollection<Item>
{
new Item { Name = "Один", ItemMode = 1 },
new Item { Name = "Два", ItemMode = 2 },
new Item { Name = "Три", ItemMode = 3 },
};
}
<Grid>
<Grid.Resources>
<converters:IntToBoolConverter x:Key="IntToBoolConverter"/>
<DataTemplate DataType="{x:Type viewModels:Item}">
<Border x:Name="Data">
<Grid x:Name="ContentBase" Margin="1,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Label Name="DisplayText" Grid.Column="0" Content="{Binding Name}"/>
<RadioButton Name="_1" Grid.Column="1" Content="1"
IsChecked="{Binding ItemMode, Converter={StaticResource IntToBoolConverter}, ConverterParameter=1}"/>
<RadioButton Name="_2" Grid.Column="2" Content="2"
IsChecked="{Binding ItemMode, Converter={StaticResource IntToBoolConverter}, ConverterParameter=2}"/>
<RadioButton Name="_3" Grid.Column="3" Content="3"
IsChecked="{Binding ItemMode, Converter={StaticResource IntToBoolConverter}, ConverterParameter=3}"/>
</Grid>
</Border>
</DataTemplate>
</Grid.Resources>
<Grid.DataContext>
<viewModels:ItemsList/>
</Grid.DataContext>
<ListBox ItemsSource="{Binding Items}"/>
</Grid>
public class BaseViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void RaisePropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
public class IntToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null
&& parameter != null
&& value.ToString() == parameter.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null || parameter == null) return Binding.DoNothing;
int result;
if ((bool)value && int.TryParse(parameter.ToString(), out result))
{
return result;
}
return Binding.DoNothing;
}
}
Т.е. есть ситуация - у меня есть класс с 150 переменными (int), я хочу непосредственно эти переменные менять, передавая её в другой класс
НО мне что, 150 функций
enum {
BT_LEFT = 1,
BT_RIGHT = 2,
BT_ROTATE = 4,
BT_SOFTDROP = 8,
BT_HARDDROP = 16,
BT_PAUSE = 32,
BT_CONNECTED = 32768, // бит, указывающий, что контроллер подключён
};
class Controller { // интерфейс
public:
virtual unsigned poll() const = 0; // сочетание битов BT_XXX
virtual ~Controller = default;
};
private DispatcherTimer timer = null;
private int x;
private void timerStart () {
timer = new DispatcherTimer(); // если надо, то в скобках указываем приоритет, например DispatcherPriority.Render
timer.Tick += new EventHandler(timerTick);
timer.Interval = new TimeSpan(0, 0, 0, 0, 500);
timer.Start();
}
private void timerTick(object sender, EventArgs e)
{
x++;
}