WPF 之 利用Visibility属性进行Item模板切换

  前台Xaml如下:

<Grid.Resources>
    <xx:AccountStatusToVisibility x:Key="AccountStatusToVisibility" />
</Grid.Resources>
 <telerik:RadButton Visibility="{Binding Status, Mode=OneWay, Converter={StaticResource AccountStatusToVisibility}, ConverterParameter=Disabled}"   Margin="0 0 5 0" Click="RadButton_Click"   Command="{Binding Path=DataContext.CmdDisabled, RelativeSource={RelativeSource AncestorType={x:Type telerik:RadGridView}}}" >设置启用</telerik:RadButton>

  后台,模板切换类:

   public class AccountStatusToVisibility : IValueConverter
     {
             #region "IValueConverter Members"

             public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
             {
                 if (value == null)
                 {
                     return false;
                 }

                 if (parameter != null)
                 {
                     switch (parameter.ToString())
                     {
                         case "Enabled":
                             return ((int)value == 0) ? Visibility.Collapsed : Visibility.Visible;
                         case "Disabled":
                             return ((int)value == 1) ? Visibility.Collapsed : Visibility.Visible;
                         //case "Invaild":
                         //    return ((int)value == 2) ? Visibility.Collapsed : Visibility.Visible;
                     }
                 }

                 return false;
             }

             public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
             {
                 throw new NotImplementedException();
             }

             #endregion
     }
时间: 2024-11-05 22:45:33

WPF 之 利用Visibility属性进行Item模板切换的相关文章

《Programming WPF》翻译 第9章 4.模板

原文:<Programming WPF>翻译 第9章 4.模板 对一个自定义元素最后的设计考虑是,它是如何连接其可视化的.如果一个元素直接从FrameworkElement中派生,这将会适当的生成它自己的可视化.(第7章描述了如何创建一个图形外观.)尤其是,如果你创建了一个元素,是为了提供一个特定的可视化表现,该元素应该完全控制这个可视化是如何管理的,一旦你编写了一个控件,通常你不会将一个图形硬编码到里面. 记住,一个控件的工作是提供行为.可视化是由控件模板提供的.这种可视化是由控件模板提供的

[Flex] 组件Tree系列 —— 利用firstVisibleItem属性,设置或取得第一个显示节点

mxml: 1 <?xml version="1.0" encoding="utf-8"?> 2 <!--功能描述: 利用firstVisibleItem属性,设置或取得第一个显示节点 --> 3 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 4 xmlns:s="library://ns.adobe.com/flex/spark"

【转】Android中visibility属性VISIBLE、INVISIBLE、GONE的区别

原文网址:http://blog.csdn.net/chindroid/article/details/8000713 在Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为“visible ”.“invisible”.“gone”.主要用来设置控制控件的显示和隐藏.有些人可能会疑惑Invisible和gone是有什么区别的???那么,我们带着这个疑问看下面: 其在XML文件和Java代码中设置如下: 可见(visible) XML文件:android:visib

DIV中display和visibility属性差别

DIV中display和visibility属性差别 DIV中display和visibility属性差别还是挺大的,虽然Visibility和Display属性都可以达到隐藏页面元素的目的,但它们的区别在于如何回应正常文档流 本节向大家描述一下DIV中display和visibility的差别,visibility属性是隐藏元素但保持元素的浮动位置,而display实际上是设置元素的浮动特征,虽然它们都可以达到隐藏页面元素的目的,但它们的区别在于如何回应正常文档流. DIV中display和v

entity framework—利用导航属性添加数据

entity framework中可以利用导航属性去添加数据. 当两张表有主外键关系的时候,并且在两张表中添加的数据都是不存在的数据,便可以利用导航属性去插入数据.例如下面的两张表: 当向两张表中去添加新数据时可以这样写,便可将两条数据都添加到数据表中. private void Form1_Load(object sender, EventArgs e) { testEntities te=new testEntities(); //定义一个上下文实例 Customer customer =

Android中visibility属性VISIBLE、INVISIBLE、GONE的区别

转载自:http://blog.csdn.net/chindroid/article/details/8000713 在Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为“visible ”.“invisible”.“gone”.主要用来设置控制控件的显示和隐藏.有些人可能会疑惑Invisible和gone是有什么区别的???那么,我们带着这个疑问看下面: 其在XML文件和Java代码中设置如下: 可见(visible) XML文件:android:visibi

Gridview利用DataFormatString属性设置数据格式

首 先把Gridview的AutoGenerateColumns属性设为False(默认是False),DataField选择相应的字段,特别需要注 意的是要把需要设置的字段的HtmlEncode属性设置为False,否则所设置的格式将无法显示,然后就可以设置每个字段的 DataFormatString属性来输出不同的格式了. DataFormatString 属性语法如下: {A:B} 如:DataFormatString="{0:格式字符串}" 冒号前的值(常规示例中为 A)指定在

Android中visibility属性详解

Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为"visible "."invisible"."gone".主要用来设置控制控件的显示和隐藏. 1) 可见(visible) XML文件:android:visibility="visible"Java代码:view.setVisibility(View.VISIBLE); 2) 不可见(invisible) XML文件:android:vis

利用getElementsByTagName() 属性获取到的属性,获取不到innerHTML

Q:在利用getElementsByTagName()属性获得元素的时候,获取后的元素,利用alert弹出元素内容的时候显示undefined? A:getElementsByTagNames()方法获取的是一个数组,因此在要获得元素内容的时候,如果想要获取网页中所有p元素的内容,就要使用遍历循环.如果是只想要其中某一个元素的内容,那么就要指定下标,即使网页中只有一个p元素,也要标上下标[0]. var oBtn = document.getElementsByTagName('p'); ale