C# 基于文本值更改符号CON
需求 我正在一个数据模板中设置这个。。我想做的是,除了一个特殊的例外,每个硬件类型显示一个不同的图标。我将使用的3个不同图标是:;Shop、OutlineStar和其他用户。所有寄存器都有商店图标,所有服务器都有大纲视图,所有显示板都有其他用户图标 例外情况 在某些情况下,寄存器也可以是服务器,因此在这种情况下,我希望将图标切换为Outline Star 代码C# 基于文本值更改符号CON,c#,xaml,windows-10,conditional,C#,Xaml,Windows 10,Conditional,需求 我正在一个数据模板中设置这个。。我想做的是,除了一个特殊的例外,每个硬件类型显示一个不同的图标。我将使用的3个不同图标是:;Shop、OutlineStar和其他用户。所有寄存器都有商店图标,所有服务器都有大纲视图,所有显示板都有其他用户图标 例外情况 在某些情况下,寄存器也可以是服务器,因此在这种情况下,我希望将图标切换为Outline Star 代码 <DataTemplate x:Key="ZoomedInTemp"
<DataTemplate x:Key="ZoomedInTemp"
x:DataType="DeviceMenu">
<Grid>
<StackPanel Orientation="Vertical" Padding="5">
<TextBlock Text="{x:Bind FacilityName}" />
<StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="Shop" Margin="0,5,12,0"/>
<TextBlock Text="{x:Bind Hardware}" />
<TextBlock Text="{x:Bind HostName}" Margin="10,0,0,0"/>
</StackPanel>
</StackPanel>
</Grid>
</DataTemplate>
您可以使用转换器获取所需的符号,并将基于硬件获取符号的逻辑放在转换器中 转换器
public class SymbolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
// value is Hardware
// Logic to return symbol
//retun Symbol.OutlineStar
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
XAML来使用这个转换器
<DataTemplate x:Key="ZoomedInTemp"
x:DataType="DeviceMenu">
<Grid>
<StackPanel Orientation="Vertical" Padding="5">
<TextBlock Text="{x:Bind FacilityName}" />
<StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="{x:Bind Hardware, Converter={StaticResource SymbolConverter}}" Margin="0,5,12,0"/>
<TextBlock Text="{x:Bind Hardware}" />
<TextBlock Text="{x:Bind HostName}" Margin="10,0,0,0"/>
</StackPanel>
</StackPanel>
</Grid>
</DataTemplate>
您必须将此转换器添加到页面/应用程序级资源。
我不确定您需要什么来决定符号,但是,如果您还需要其他东西,那么您可以在ConverterParameter中传递它