Nat*_*ate 2 .net silverlight user-interface xaml
我有一个Listbox,它有一个Checkbox作为项目模板的一部分.
在单击复选框的单击,我想确保选择相同的列表项.
ListBoxItem lbi = ((ListBoxItem)listLayers.
ContainerFromElement((CheckBox)sender));
lbi.IsSelected = true;
Run Code Online (Sandbox Code Playgroud)
我遇到的主要问题是Silverlight中没有"ContainerFromElement".
任何帮助是极大的赞赏.
编辑
这是我在列表中的复选框的click事件中运行的代码:
MyObject obj = listLayers.SelectedItem as MyObject;
obj.Visible = true;
obj.Value = "50";
Run Code Online (Sandbox Code Playgroud)
使用复选框上的RelativeSource绑定以及此代码,我最终得到的obj等于null.
我有一个层列表,我想通过复选框打开和关闭,我对另一种方式开放...
在selectionChanged事件中,您必须"遍历"可视树以找到该复选框.您可以使用VisualTreeHelper执行此操作
此示例显示了进入复选框需要执行的操作.
以下是此问题的其他一些解决方案
您应该在ListboxItem和CheckBox之间使用RelativeSource绑定.datatemple包含一个复选框.将其更改为如下所示.
<CheckBox
IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent},
Path=IsSelected, Mode=TwoWay}" />
Run Code Online (Sandbox Code Playgroud)
这将在ListBox 的IsSelected属性和CheckBox 的IsChecked属性之间创建绑定. 本教程通过示例说明了如何使用.
如果您需要更多控制,您应该查看行为和触发器.他们有点复杂,但给你更多的控制权.
归档时间: |
|
查看次数: |
9781 次 |
最近记录: |