silverlight IValueConverter

在给datagrid绑定数据的时候 要根据行信息  来控制某一行是否可见  行对象的一个属性为bool类型  根据它来控制的时候 用到了 转换

 

要绑定的grid
 <uwayG:UwayDataGrid  AutoGenerateColumns="False" Grid.ColumnSpan="5"  IsReadOnly="True"  Grid.Row="5"  Grid.Column="5" 
x:Name
="gridFormulas" Margin="0,7,0,0" DblClick="gridFormulas_DblClick">
<uwayG:UwayDataGrid.Columns>
<!--<sdk:DataGridTextColumn Binding="{Binding FormulaContent}" Width="180" x:Name="FormulaContent" Header="公式内容" />
<sdk:DataGridTextColumn Binding="{Binding NMinute}" Width="50" x:Name="NMinute" Header="时间"/>
<sdk:DataGridTextColumn Binding="{Binding NCount}" Width="50" x:Name="NCount" Header="次数"/>
<sdk:DataGridTextColumn Binding="{Binding WarnLeavl}" Width="70" x:Name="WarnLeavl" Header="告警级别" />
-->
<sdk:DataGridTemplateColumn Width="180" Header="公式内容">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Visibility="{Binding Path=IsEnable,Mode=OneWay,
Converter={StaticResource ConverterTrue2Visibility}}
"
Text
="{Binding FormulaContent}"></TextBlock>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Width="50" Header="时间">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Visibility="{Binding Path=IsEnable,Mode=OneWay,
Converter={StaticResource ConverterTrue2Visibility}}
" Text="{Binding NMinute}"></TextBlock>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Width="50" Header="次数">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Visibility="{Binding Path=IsEnable,Mode=OneWay,
Converter={StaticResource ConverterTrue2Visibility}}
" Text="{Binding NCount}"></TextBlock>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Width="70" Header="告警级别">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Visibility="{Binding Path=IsEnable,Mode=OneWay,
Converter={StaticResource ConverterTrue2Visibility}}
" Text="{Binding WarnLeavl}"></TextBlock>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</uwayG:UwayDataGrid.Columns>
</uwayG:UwayDataGrid>

 

后台写的conver类
 public class ConverterTrue2Visibility : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((bool)value)
{
return Visibility.Visible;
}
else
{
return Visibility.Collapsed;
}
}

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

 

前后台关联
  <local:ConverterTrue2Visibility  x:Key="ConverterTrue2Visibility">
</local:ConverterTrue2Visibility>


//顺带提一句  如果后台设置bingding 只需要实例化ConverterTrue2Visibility,然后把对象给bingding的convert

posted @ 2011-11-24 16:01  luosm  阅读(348)  评论(0编辑  收藏  举报