Я создал собственное поведение, которое я могу передать свойства в порядке, в настоящее время просто строки, мое поведение выглядит примерно так:
public class ImageSourceBehavior : Behavior<Image>, INotifyPropertyChanged
{
public static readonly DependencyProperty ImageDirectoryProperty = DependencyProperty.Register("ImageDirectory", typeof(string), typeof(ImageSourceBehavior), new PropertyMetadata(null));
public string ImageDirectory
{
get
{
return (string)GetValue(ImageDirectoryProperty);
}
set
{
SetValue(ImageDirectoryProperty, value);
}
}
public static readonly DependencyProperty ImageExtensionProperty = DependencyProperty.Register("ImageExtension", typeof(string), typeof(ImageSourceBehavior), new PropertyMetadata(null));
public string ImageExtension
{
get
{
return (string)GetValue(ImageExtensionProperty);
}
set
{
SetValue(ImageExtensionProperty, value);
}.............
}
Я могу использовать его нормально со стандартными строками, например:
<Image x:Name="flag" Stretch="Uniform" MaxWidth="150" MaxHeight="150">
<i:Interaction.Behaviors>
<infrastructure:ImageSourceBehavior ImageDirectory="/Theme_External;component/Media/Images/Flags/" ImageExtension=".png" ImageNameWithoutExtension="some test text" />
</i:Interaction.Behaviors>
</Image>
Мой вопрос: как передать значение привязки вместо строки, например:
<Image x:Name="flag" Stretch="Uniform" MaxWidth="150" MaxHeight="150">
<i:Interaction.Behaviors>
<infrastructure:ImageSourceBehavior ImageDirectory="/Theme_External;component/Media/Images/Flags/" ImageExtension=".png" ImageNameWithoutExtension="{Binding Path=.}" />
</i:Interaction.Behaviors>
</Image>
Я просто получаю исключение синтаксического анализа XAML, когда пытаюсь это сделать, хотя привязка действительна, есть идеи?
Спасибо за ваше время