当我尝试将valueconverter从定义的枚举状态绑定到画笔时,我的XAML设计器中出现错误:
找不到'OKStatus'资源.
该应用程序运行良好的运行时,但我无法在设计器中看到我的GUI.我的资源在color.xaml文件中定义,该文件在运行时读取.所有代码都在同一名称空间内
我的XAML:
的xmlns:配置= "CLR的命名空间:App.MyNamespace"
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="c:\Skins\Colors.xaml" />
<ResourceDictionary Source="c:\Skins\Common.xaml" />
</ResourceDictionary.MergedDictionaries>
<config:StatusConverter x:Key="StateConverter" />
<config:BoolConverter x:Key="BoolConverter" />
<config:BooleanConverter x:Key="BooleanConverter" />
</ResourceDictionary>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
和
状态
我的转换器:
[ValueConversion(typeof(bool), typeof(Brush))]
public class BoolConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
bool state = (bool)value;
FrameworkElement FrameElem = new FrameworkElement();
if (state == true)
return (FrameElem.FindResource("OKStatus") as Brush);
else
return (FrameElem.FindResource("ErrorStatus") as Brush);
}
public object ConvertBack(object value, Type targetType,
object parameter, …
Run Code Online (Sandbox Code Playgroud) 我想根据bool的状态更改WPF控件的颜色,在这种情况下是复选框的状态.只要我使用StaticResources,这个工作正常:
我的控制
<TextBox Name="WarnStatusBox" TextWrapping="Wrap" Style="{DynamicResource StatusTextBox}" Width="72" Height="50" Background="{Binding ElementName=WarnStatusSource, Path=IsChecked, Converter={StaticResource BoolToWarningConverter}, ConverterParameter={RelativeSource self}}">Status</TextBox>
Run Code Online (Sandbox Code Playgroud)
我的转换器:
[ValueConversion(typeof(bool), typeof(Brush))]
public class BoolToWarningConverter : IValueConverter
{
public FrameworkElement FrameElem = new FrameworkElement();
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
bool state = (bool)value;
try
{
if (state == true)
return (FrameElem.TryFindResource("WarningColor") as Brush);
else
return (Brushes.Transparent);
}
catch (ResourceReferenceKeyNotFoundException)
{
return new SolidColorBrush(Colors.LightGray);
}
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return …
Run Code Online (Sandbox Code Playgroud) 我有一个在COM库中定义的结构.在我的ViewModel中,我创建了一个可观察的实例,并希望将结构的每个成员绑定到视图中的不同控件.ConfigStaticDataDetails变量通过COM中的委托进行更新.
有没有办法捕获结构成员的更新,以便我的视图反映更新?
结构的一部分:
public struct ConfigStaticData
{
public string Callsign;
}
Run Code Online (Sandbox Code Playgroud)
我的:变量:
private ConfigStaticData _ConfigStaticDataDetails;
public ConfigStaticData ConfigStaticDataDetails
{
get
{
return _ConfigStaticDataDetails;
}
set
{
_ConfigStaticDataDetails = value;
OnPropertyChanged("ConfigStaticDataDetails");
}
}
Run Code Online (Sandbox Code Playgroud)
在XAML中:
<TextBox Name="ConfigStaticDataCallsignLabelTxt"
Margin="0,2,0,2"
Width="230"
Style="{DynamicResource EditableTextBox}"
Text="{Binding Source=ConfigStaticDataDetails, Path=Callsign}" />
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法,但这是我当前的代码(不起作用).