【问题标题】:How to update binding source for checkbox from template?如何从模板更新复选框的绑定源?
【发布时间】:2013-08-18 14:16:40
【问题描述】:

我有一个模板 (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。

【问题讨论】:

    标签: c# xaml binding windows-phone-8


    【解决方案1】:
    <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();
       }
    }
    

    【讨论】:

    • 谢谢,我希望我的问题最终能得到解决,但它不起作用。它将所有 CheckBox 添加到列表中并遍历它们,但它没有看到它们已更改。通过我的导航解决方案“刷新”仍然有效,因此代码中的其他地方应该没有问题。
    猜你喜欢
    • 2017-07-15
    • 2011-01-31
    • 2017-10-16
    • 2011-05-21
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多