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>