2011-01-26 3 views
0

Сначала позвольте мне сказать, что я новичок в Silverlight. Но у меня есть большая часть «базового» материала Silverlight. Я использую Silverlight 3 на данный момент.Silverlight 3 IValueConverter проблемы

Вкратце, я не вижу своего IValueConverter, вызванного внутри UserControl. Но, как и во многих вещах, это не так просто. UserControl находится в ячейке DataGrid, в столбце, DataColumnTemplate создается во время выполнения XAML.

Вот мой DataTemplate для колонны:

StringBuilder CellTemp = new StringBuilder(); 
      CellTemp.Append("<DataTemplate "); 
      CellTemp.Append("xmlns:aa='clr-namespace:InvTech.AA.Silverlight.UI;assembly=AASilverlight' ");    
      CellTemp.Append("xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' "); 
      CellTemp.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' "); 
      CellTemp.Append(">"); 
      CellTemp.AppendFormat("<aa:ProductAssetView DataContext='{{Binding Products[{0}]}}' />", index); 
      CellTemp.Append("</DataTemplate>"); 
      return CellTemp.ToString(); 

Так содержимое ячейки становятся связаны с моей UserControl. Это работает; Я просто не могу заставить свой IValueConverter вызывать форматирование содержимого UserControl так, как я хочу.

Оперативные части UserControl XAML:

(объявлять префикс)

xmlns:aaConv="clr-namespace:InvTech.AA.Silverlight.Core;assembly=AA.Core" 

(связанные элементы управления внутри сетки макета)

<TextBox x:Name="txtSAA" Grid.Row="0" Grid.Column="0" Text="{Binding SAA, Converter={StaticResource PercentConverter}, Mode=TwoWay}" Width="35" FontSize="9"/> 
<TextBox x:Name="txtOVR" Grid.Row="0" Grid.Column="1" Text="{Binding Overlay, Converter={StaticResource PercentConverter}, Mode=TwoWay}" Width="35" FontSize="9" /> 
<TextBox x:Name="txtTAA" Grid.Row="0" Grid.Column="2" Text="{Binding TAA, Converter={StaticResource PercentConverter}, Mode=TwoWay}" Width="35" FontSize="9" /> 
<TextBlock x:Name="tbkCurrent" Grid.Row="0" Grid.Column="3" Text="TODO" Width="35" FontSize="9" />    
<Grid.Resources> 
    <aaConv:PercentValueConverter x:Key="PercentConverter" /> 
</Grid.Resources> 

там что-то, очевидно, здесь не так? Является ли динамический XAML фактором? Я чувствую, что это должно быть тривиальным по сравнению с динамическим шаблоном XAML ...

Благодаря

ответ

0

Наконец понял это. Перемещая объявление ресурса на <UserControl.Resources> и помещая этот тег перед контентом, мои IValueConverters выполнялись.

Смежные вопросы