【问题标题】:DataContextChanged event of CheckBoxCheckBox 的 DataContextChanged 事件
【发布时间】:2013-01-14 05:42:49
【问题描述】:

我在 Silverlight4 VS 2010 中工作。我在我的 .xaml 文件中放置了一个复选框。我需要它的 DataContextChanged 事件。但不幸的是我没有找到它。

这是我的复选框:

<CheckBox x:Name="chkRegion" Content="{Binding name}" Click="CheckBox_Click" ></CheckBox>

您能帮我找到 SL 4 VS 2010 中的 DataContextChanged。

谢谢,拉杰比尔

【问题讨论】:

  • 如果你知道你想做什么,你需要 DataContextChanged 事件。
  • 我想在此事件中实现一些逻辑,基于我可以更改此复选框的 ischecked 属性。实际上这个复选框被放置在 Combobox 的 DataTemplate 中。
  • 那你为什么不使用 IValueConverter 并将其绑定到数据模板中 Checkbox 的 IsChecked 属性。如果你想让我写一段代码示例,可以帮助你让我知道

标签: silverlight silverlight-4.0 silverlight-3.0 silverlight-2.0


【解决方案1】:

实现一个转换器(它只是一个从 IValueConverter 派生并实现接口方法的简单类)

public class ChangeIsCheckedValConverter : IValueConverter
{
    public object Convert(object value,
                          Type targetType,
                          object parameter,
                          System.Globalization.CultureInfo culture)
    {
        if (value != null)
        {

//这里的值是你绑定到 DataContext 的对象 复选框; //根据您的值返回布尔值(真或假) 绑定到您的复选框

    }

    public object ConvertBack(object value,
                              Type targetType,
                              object parameter,
                              System.Globalization.CultureInfo culture)
    {
        return null;
    }
You will have to add the name space of you newly implemnted converter whereever you will want to use .

然后使用此转换器,您的复选框在数据模板中定义如下: //首先定义key如下:

 <converters:VisibilityConverter x:Key="changeConverter" />

<CheckBox x:Name="chkRegion" Content="{Binding name}" IsChecked={Binding ,Converter={StaticResource changeConverter}}"} Click="CheckBox_Click" ></CheckBox>

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 2013-10-02
    • 1970-01-01
    • 2018-07-23
    • 2018-10-01
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多