小编Rob*_*Rob的帖子

转换后返回Segoe MDL2图标的转换器不起作用

我正在尝试将PlayerFramework.MediaPlayer.CanPause属性绑定到我的Windows 10通用应用程序中的按钮.这可以使用默认字体,但是当我切换到Segoe MDL2来获取那些花哨的图标时,按钮显示垃圾.

<mmppf:MediaPlayer x:Name="mediaElement">

...

<Button Name="btnPlay" 
        Style="{StaticResource transportStyle}"  Content="{Binding CanPause, ElementName=mediaElement, Converter={StaticResource CanPauseToPlayPauseConverter}}"/>
Run Code Online (Sandbox Code Playgroud)

这是来自转换器:

public object Convert(object value, Type targetType, object parameter, string language)
    {
        bool canPause = (bool)value;
        if (canPause)
            return @"&#xE769;";
        // "play"
        return "&#xE102;";
    }
Run Code Online (Sandbox Code Playgroud)

...来自按钮样式:

<Style x:Name="transportStyle"  TargetType="Button">
       <!-- <Setter Property="FontFamily" Value="Segoe MDL2 Assets" />-->
</Style>
Run Code Online (Sandbox Code Playgroud)

禁用Setter属性后,该按钮显示预期值

&#xE102;
Run Code Online (Sandbox Code Playgroud)

其中,直接设置为按钮内容,显示播放符号.

任何想法为什么这不起作用?

编辑:从字符表中复制字符并返回它确实有效.

data-binding xaml

6
推荐指数
1
解决办法
2129
查看次数

Mvx.Resolve 在单元测试中失败

我目前正在尝试为使用 mvvmcross 以 xamaring 编写的 android/ios 应用程序编写单元测试。我已经按照wiki 中的说明进行操作,当服务尝试以这种方式更改 ViewModel 时,它们确实运行良好:

var viewDispatcher = Mvx.Resolve<IMvxViewDispatcher>();
viewDispatcher?.ShowViewModel(
new MvxViewModelRequest(typeof(HomeViewModel), null, null, MvxRequestedBy.Unknown));
Run Code Online (Sandbox Code Playgroud)

测试在第一行失败Mvx.Resolve();。我认为这归结为在模拟 IoC 容器中注册接口:

this.mockDispatcher = new MockDispatcher();
this.Ioc.RegisterSingleton<IMvxViewDispatcher>(this.mockDispatcher);
this.Ioc.RegisterSingleton<IMvxMainThreadDispatcher(this.mockDispatcher);
Run Code Online (Sandbox Code Playgroud)

所以当以这种方式调用时,Mvx 无法解析。可以测试此代码还是有任何其他可能性可以从服务中更改 ViewModel?

nunit unit-testing mocking mvvmcross xamarin

0
推荐指数
1
解决办法
652
查看次数

标签 统计

data-binding ×1

mocking ×1

mvvmcross ×1

nunit ×1

unit-testing ×1

xamarin ×1

xaml ×1