1

我有一个用于项目的模板 ( TextBlock+ ),但我无法弄清楚如何刷新绑定。绑定到一个布尔属性。到目前为止唯一可行的方法是导航到具有不同参数的相同 XAML 页面,但是这个“解决方案”是不可用的。CheckBoxLonglistSelectorCheckBox

我找到了一些如何使用UpdateSource()withTextBox但没有使用CheckBoxfrom 模板的示例。

这是我CheckBox的 teplate。很多东西可能没用,我尝试了我发现的所有东西。绑定正在工作,但它不会刷新,所以我必须导航到另一个页面,例如,然后它会被刷新。

<CheckBox BorderThickness="2" 
                          VerticalAlignment="Center" 
                          x:Name="TemplateCheckBox" 
                          IsChecked="{Binding IsDone, UpdateSourceTrigger=Explicit, Mode=TwoWay}"
                          Checked="TemplateCheckBox_Checked"
                          Unchecked="TemplateCheckBox_Checked"
                          /> 

编辑:我找到了简单的方法来更新LonglistSelector. 只需将另一个空List集创建为 a ItemsSource,然后将原始列表设置为ItemsSource

4

1 回答 1

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();
   }
}
于 2013-08-16T08:45:55.467 回答