Windows phone 7 WP7/Silverlight如何在列表中切换复选框?

Windows phone 7 WP7/Silverlight如何在列表中切换复选框?,windows-phone-7,.net-4.0,silverlight-3.0,Windows Phone 7,.net 4.0,Silverlight 3.0,我在想办法解决这个问题时遇到了麻烦。基本上,我有一个带有复选框的列表框,使它成为一个选中的列表框 我想做的是,当用户点击一个按钮时,复选框被切换为显示或隐藏 我已尝试将可见性绑定到视图模型中的属性,但这不起作用 正确的方法是什么?我在谷歌搜索过,没有找到任何可靠的东西 谢谢。将复选框的可见性绑定到列表中包含的类的属性,该类是列表框的项源 下面是一些代码。这是一个快速测试,使用代码隐藏,但应该很容易移植到视图模型 类别: public class CheckString { public

我在想办法解决这个问题时遇到了麻烦。基本上,我有一个带有复选框的列表框,使它成为一个选中的列表框

我想做的是,当用户点击一个按钮时,复选框被切换为显示或隐藏

我已尝试将可见性绑定到视图模型中的属性,但这不起作用

正确的方法是什么?我在谷歌搜索过,没有找到任何可靠的东西


谢谢。

将复选框的可见性绑定到列表中包含的类的属性,该类是列表框的项源

下面是一些代码。这是一个快速测试,使用代码隐藏,但应该很容易移植到视图模型

类别:

public class CheckString
{
    public Visibility Visibility
    {
        get 
        { 
            Visibility retval = Visibility.Collapsed;
            if (IsChecked)
            {
                retval = Visibility.Visible;
            }
            return retval;
        }
    }
    public bool IsChecked { get; set; }
    public string Description { get; set; }

    public CheckString() {}
}
代码隐藏

public partial class MainPage : PhoneApplicationPage
{

    public List<CheckString> CheckStringList { get; set; }

    // Constructor
    public MainPage()
    {
        InitializeComponent();

        SetupList();

        DataContext = this;
    }

    private void SetupList()
    {
        CheckStringList = new List<CheckString>();

        CheckString cs1 = new CheckString { Description = "Test 1"};
        CheckStringList.Add(cs1);

        CheckString cs2 = new CheckString { IsChecked = true, Description = "Test 2" };
        CheckStringList.Add(cs2);

        CheckString cs3 = new CheckString { Description = "Test 3" };
        CheckStringList.Add(cs3);

    }

}
Xaml


你能发一些代码吗?仅仅从您的描述很难判断出哪里出了问题。这将如何设置复选框的可见性?我想显示或隐藏列表中的复选框。对不起-误读了问题。已经发布了符合您要求的示例代码。
    <ListBox.ItemTemplate>

        <DataTemplate>

            <Grid>

                <Grid.ColumnDefinitions>
                    <ColumnDefinition
                        Width="Auto" />
                    <ColumnDefinition
                        Width="*" />
                </Grid.ColumnDefinitions>

                <CheckBox
                    Grid.Column="0"
                    Visibility="{Binding Visibility}"
                    IsChecked="{Binding IsChecked}" />

                <TextBlock
                    Grid.Column="1"
                    Text="{Binding Description}" />
            </Grid>

        </DataTemplate>

    </ListBox.ItemTemplate>

</ListBox>