2

所以我今天在 MSDN 上找到了一个Converters列表,现在我想使用其中的一些。但是,经过一番搜索后,我似乎找不到任何关于它们的信息。

我主要想使用IntToBoolConverter。但是我不知道如何使用转换,因为没有提供如何操作的信息(或在谷歌上)。

我知道自己制作这个转换器很容易,但我是一名程序员,我的 moto 尽可能地偷懒,制作已经存在的方法(转换器)是多余的工作。

希望有人可以向我解释如何使用这些转换器。

编辑:

尝试回复后,我在加载用户控件时出错:

{"Cannot find resource named 'IntToVisibleConverter'. Resource names are case sensitive."}

应用程序.xaml

<Application x:Class="Smartp1ck.JungleTimerClient.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:msconv="clr-namespace:Microsoft.TeamFoundation.Controls.WPF.Converters;assembly=Microsoft.TeamFoundation.Controls">
    <Application.Resources>
        <msconv:IntToVisibleConverter x:Key="IntToVisibleConverter" />
    </Application.Resources>
</Application>

在用户控件上

<TextBlock Text="{Binding TimeLeft}" HorizontalAlignment="Center" Visibility="{Binding Path=TimeLeft, Converter={StaticResource IntToVisibleConverter}}" />

编辑2:

将它放在用户控件的资源中使其工作。太糟糕了,由于某种原因我不能使用 app.xaml,我稍后会弄清楚。感谢帮助,已解决!

格言

4

1 回答 1

6

您必须Microsoft.TeamFoundation.Controls.dll在您的应用程序和 xaml 中添加作为参考,然后您可以在窗口资源中声明转换器并在您的应用程序中使用。

例子:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mstf="clr-namespace:Microsoft.TeamFoundation.Controls.WPF.Converters;assembly=Microsoft.TeamFoundation.Controls"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <mstf:IntToBoolConverter x:Key="IntToBoolConverter" />
    </Window.Resources>

    <Grid>
        <CheckBox IsChecked="{Binding Path=MyInt, Converter={StaticResource IntToBoolConverter}}" />
    </Grid>
</Window>

如果您想在整个应用程序(其他窗口/对话框等)中全局使用转换器,您可以在App.xaml

例子:

<Application x:Class="WpfApplication1.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mstf="clr-namespace:Microsoft.TeamFoundation.Controls.WPF.Converters;assembly=Microsoft.TeamFoundation.Controls"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <mstf:IntToBoolConverter x:Key="IntToBoolConverter" />
    </Application.Resources>
</Application>

您可以像第一个示例一样访问它Converter={StaticResource IntToBoolConverter}

于 2013-01-29T01:03:11.153 回答