使用切换按钮创建选择器

时间:2017-01-27 10:15:51

标签: c# wpf mvvm

我使用mvvm在C#WPF中工作,我不知道如何设计我的应用程序来创建选择器。

我有一个包含点的类:

public class MyCustomRectangle
{
    public MyCustomPoint Point1;
    public MyCustomPoint Point2;
    public MyCustomPoint Point3;
    public MyCustomPoint Point4;
}

我的应用程序包含图像。用户可以通过单击图像绘制4个点。他必须选择要绘制的点并单击。

enter image description here

我想将选择器作为togglebuttons,在我的MainViewModel上绑定:

class MainViewModel : ViewModelBase
{
    private MyCustomRectangle _myPoints;
    public MyCustomRectangle MyPoints
    {
        get
        {
            return _myPoints;
        }
    }

    public int _selectedPointIndex;
    public int SelectedPointIndex
    {
        get
        {
            return _selectedPointIndex;
        }
        set
        {
            _selectedPointIndex = value;
            OnPropertyChanged();
        }
    }

    public int SelectedPoint
    {
        get
        {
            return MyPoints.GetPoint(SelectedPointIndex);
        }
    }

}

但我不知道如何轻松地将我的按钮绑定到视图模型。行为必须是:

  • 取消选中所有按钮。
  • 如果用户选中按钮1,则按钮1将传递给checked并且SelectedPointIndex = 1
  • 如果用户选中按钮2,则按钮2将通过检查并且SelectedPointIndex = 2并且未选中按钮1

实际上我只是:

<ToggleButton Grid.Row="0" Grid.Column="0" Content="Point 1"/>
<ToggleButton Grid.Row="0" Grid.Column="1" Content="Point 2"/>
<ToggleButton Grid.Row="1" Grid.Column="0" Content="Point 3"/>
<ToggleButton Grid.Row="1" Grid.Column="1" Content="Point 4"/>

如何简单地绑定我的按钮?

1 个答案:

答案 0 :(得分:1)

使用RadioButtons表示您的预期行为,并将其设置为ToggleButtons。使用RadioButtons可以在此处找到:https://www.wpftutorial.net/RadioButton.html

定义样式:

<Style x:Key="RadioButtonLooksAsToggleButton" BasedOn="{StaticResource {x:Type ToggleButton}}" TargetType="RadioButton"/> 

使用样式:

<RadioButton Style="{StaticResource RadioButtonLooksAsToggleButton}" />