我有TextBlock
项目的模板(CheckBox
+ LonglistSelector
),但我无法弄清楚如何刷新绑定。 CheckBox
绑定到布尔属性。到目前为止唯一的方法是导航到具有不同参数的相同XAML页面,但是这个“解决方案”是不可用的。
我找到了一些示例,说明如何将UpdateSource()
与TextBox
一起使用,但没有使用CheckBox
来自模板。
这是来自teplate的CheckBox
。许多事情可能都是无用的,我尝试了我发现的一切。绑定正在工作,但它没有刷新,所以我必须导航到另一个页面,然后刷新。
<CheckBox BorderThickness="2"
VerticalAlignment="Center"
x:Name="TemplateCheckBox"
IsChecked="{Binding IsDone, UpdateSourceTrigger=Explicit, Mode=TwoWay}"
Checked="TemplateCheckBox_Checked"
Unchecked="TemplateCheckBox_Checked"
/>
编辑:我找到了如何更新LonglistSelector
中的项目的简便方法。只需创建另一个空的List
,将其设置为ItemsSource
,然后将原始列表设置为ItemsSource
。
答案 0 :(得分:0)
<CheckBox BorderThickness="2" **Loaded="OnLoaded"**
VerticalAlignment="Center"
x:Name="TemplateCheckBox"
IsChecked="{Binding IsDone, UpdateSourceTrigger=Explicit, Mode=TwoWay}"
Checked="TemplateCheckBox_Checked"
Unchecked="TemplateCheckBox_Checked"
/>
private List<CheckBox> chkList=new List<CheckBox>();
private void OnLoaded(object sender,EventArgs e)
{
if(!chkList.Contians(sender as CheckBox))
{
chkList.Add(sender as CheckBox);
}
}
private void UpdateSource()
{
foreach(CheckBox chk in chkList)
{
chk.GetBindingExpression(CheckBox.IsChekcedProperty).UpdateSource();
}
}