首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ValueConverter访问条目

从ValueConverter访问条目
EN

Stack Overflow用户
提问于 2019-08-13 05:19:06
回答 1查看 86关注 0票数 0

我需要访问转换器附加到的entry组件,这样我就可以使用Entry.CursorPosition更改光标位置。

我有一个同时也是一个IValueConverter的BindableObject,我怎样才能到达入口

代码语言:javascript
复制
public class MaskConverter : BindableObject, IValueConverter
{

...

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-14 02:11:02

在XAML中,命名Entry并使用x:Reference

具有MyEntry属性的转换器(未显示Mode=TwoWayConvertBack):

代码语言:javascript
复制
public class MyConverter : BindableObject, IValueConverter
{
    public Entry MyEntry { get; set; }

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var entry = MyEntry;
        Debug.WriteLine($"convert:pos:{entry?.CursorPosition}:");
        return (string)value;
    }

    ...
}

使用MyEntry属性的XAML (MyText是视图模型上的属性,未显示):

代码语言:javascript
复制
<ContentPage.Resources>
  <local:MyConverter x:Key="myConverter" MyEntry="{x:Reference myEntry}" />
  ...
</ContentPage.Resources>
...
<Entry x:Name="myEntry" Text="{Binding MyText, 
                                       Converter={StaticResource myConverter}}">

如果没有MyEntry属性,则可能会使用ConverterParameter将命名Entry传递给转换器

代码语言:javascript
复制
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    var param = parameter as Entry;
    Debug.WriteLine($"convert:pos:{param?.CursorPosition}:");
    return (string)value;
}

ConverterParameter中传递命名Entry时使用XAML

代码语言:javascript
复制
<ContentPage.Resources>
  <local:MyConverter x:Key="myConverter" />
  ...
</ContentPage.Resources>
...
<Entry x:Name="myEntry" Text="{Binding MyText, 
                                       Converter={StaticResource myConverter},
                                       ConverterParameter={x:Reference myEntry}}">
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57468380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档