I am using http://blogs.microsoft.co.il/blogs/justguy/archive/2009/01/19/wpf-combobox-with-checkboxes-as-items-it-will-even-update-on-the-fly.aspx?CommentPosted=true#commentmessage
example to show selected items in the same combobox seperated by comma.
but when i try to use Usercontrol in wpfform i am getting this exception
System.Windows.Markup.XamlParseException was unhandled
Message=Provide value on 'System.Windows.Markup.StaticResourceHolder' threw an exception.
Source=PresentationFramework
LineNumber=0
LinePosition=0
StackTrace:
at System.Windows.Markup.XamlReader.RewrapException(Exception e, Uri baseUri)
at System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlReader templateReader, XamlObjectWriter currentWriter)
at System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlObjectWriter objectWriter)
at System.Windows.FrameworkTemplate.LoadOptimizedTemplateContent(DependencyObject container, IComponentConnector componentConnector, IStyleConnector styleConnector, List`1 affectedChildren, UncommonField`1 templatedNonFeChildrenField)
at System.Windows.FrameworkTemplate.LoadContent(DependencyObject container, List`1 affectedChildren)
at System.Windows.StyleHelper.ApplyTemplateContent(UncommonField`1 dataField, DependencyObject container, FrameworkElementFactory templateRoot, Int32 lastChildIndex, HybridDictionary childIndexFromChildID, FrameworkTemplate frameworkTemplate)
at System.Windows.FrameworkTemplate.ApplyTemplateContent(UncommonField`1 templateDataField, FrameworkElement container)
at System.Windows.FrameworkElement.ApplyTemplate()
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Border.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Control.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Controls.Border.MeasureOverride(Size constraint)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Window.MeasureOverrideHelper(Size constraint)
at System.Windows.Window.MeasureOverride(Size availableSize)
at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
at System.Windows.UIElement.Measure(Size availableSize)
at System.Windows.Interop.HwndSource.SetLayoutSize()
at System.Windows.Interop.HwndSource.set_RootVisualInternal(Visual value)
at System.Windows.Interop.HwndSource.set_RootVisual(Visual value)
at System.Windows.Window.SetRootVisual()
at System.Windows.Window.SetRootVisualAndUpdateSTC()
at System.Windows.Window.SetupInitialState(Double requestedTop, Double requestedLeft, Double requestedWidth, Double requestedHeight)
at System.Windows.Window.CreateSourceWindow(Boolean duringShow)
at System.Windows.Window.CreateSourceWindowDuringShow()
at System.Windows.Window.SafeCreateWindowDuringShow()
at System.Windows.Window.ShowHelper(Object booleanBox)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at CheckboxInComboboxWpf.App.Main() in C:\test\CheckboxInComboboxWpf\CheckboxInComboboxWpf\obj\x86\Debug\App.g.cs:line 0
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
Message=Cannot find resource named 'SolidBorderBrush'. Resource names are case sensitive.
Source=PresentationFramework
StackTrace:
at System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference)
at System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
InnerException:
Hi Guys,
I have to create dynamic datagrid in viewmodel using vs 2010 on WPF.
I have created the dynamic datagrid and I populated the data in this grid but I have to include the checkbox inside the datagrid and whenever click the checkbox, I have to do some action on that. I wrote the code and I got some error but I unable to
figure out. Below I gave the code. Please any one help me to solve this issue.
<Window.Resources>
<vm:StudentViewModel
x:Key=»GridVM»></vm:StudentViewModel>
</Window.Resources>
<Grid x:Name=»LayoutRoot»>
<DataGrid x:Name=»dataGrid»/>
</Grid>
This is Code Behind :-
using System;
using System.Xml;
using System.IO;
public partial
class DynamicTest :
Window
{
public DynamicTest()
{
InitializeComponent();
DataContext =new ViewModels.StudentViewModel();
List<StaffMember> dataList =
StaffMember.GetData();
dataGrid.AutoGenerateColumns = false;
dataGrid.ItemsSource = dataList;
int periodCount = dataList[0].Periods.Count;
for (int i = 0; i < periodCount; i++)
{
dataGrid.Columns.Add(CreateTemplateColumn(i, «Hours»));
}
}
private static
DataGridTextColumn CreateTextColumn(string fieldName,
string title)
{
DataGridTextColumn column =
new DataGridTextColumn();
column.Header = title;
column.Binding = new System.Windows.Data.Binding(fieldName);
return column;
}
private DataGridTemplateColumn CreateTemplateColumn(int i,
string propName)
{
DataGridTemplateColumn column =
new DataGridTemplateColumn();
column.Header = String.Format(«Period#{0}.{1}», i, propName);
XmlReader reader =
XmlReader.Create(CreateColumnTemplate(i, propName));
column.CellTemplate = (DataTemplate)System.Windows.Markup.XamlReader.Load(reader);
//display template
XmlReader reader2 =
XmlReader.Create(CreateColumnEditTemplate(i, propName));
column.CellEditingTemplate = (DataTemplate)System.Windows.Markup.XamlReader.Load(reader2);
//edit template\\\
return column;
}
private StringReader CreateColumnTemplate(int index,
string propertyName)
{
StringReader sr ;
if (index == 0)
{
string strChk = string.Empty;
strChk = «<DataTemplate xmlns=’http://schemas.microsoft.com/winfx/2006/xaml/presentation’ xmlns:x=’http://schemas.microsoft.com/winfx/2006/xaml’>» +
» <CheckBox IsChecked='{Binding IsSelected, Mode= TwoWay ,UpdateSourceTrigger=PropertyChanged}’ Command='{Binding Source={StaticResource GridVM},
Path=IsCheckedCommand}’ HorizontalAlignment=’Center’/> </DataTemplate>»;
sr = new StringReader(@strChk);
}
else
{
sr = new StringReader(@»<DataTemplate xmlns=’http://schemas.microsoft.com/winfx/2006/xaml/presentation’
xmlns:x=’http://schemas.microsoft.com/winfx/2006/xaml’>» +
String.Format(«<TextBlock Text='{{Binding Periods[{0}].{1}}}’/>», index, propertyName) +
«</DataTemplate>»);
}
return sr;
}
private StringReader CreateColumnEditTemplate(int index,
string propertyName)
{
StringReader sr1 =
new StringReader(@»<DataTemplate xmlns=’http://schemas.microsoft.com/winfx/2006/xaml/presentation’ xmlns:x=’http://schemas.microsoft.com/winfx/2006/xaml’>» +
String.Format(«<TextBox Text='{{Binding Periods[{0}].{1}, Mode=TwoWay}}’/>», index, propertyName) +
» </DataTemplate>»);
return sr1;
}
}
}
When I run this code, I got error message like below
Provide value on ‘System.Windows.Markup.StaticResourceHolder’ threw an exception.
InnerExecption message is like:
{«Cannot find resource named ‘GridVM’. Resource names are case sensitive.»}
Guide me to solve this issue
How to fix this issue?
umc55555 14 / 14 / 7 Регистрация: 11.05.2013 Сообщений: 225 |
||||
1 |
||||
.NET 4.x 28.10.2013, 21:35. Показов 2948. Ответов 6 Метки нет (Все метки)
Нужно изменять изображение в Content в зависимости от свойства IsEnabled. Можно ли это сделать с помощью Binding и как?
0 |
maratoss 65 / 49 / 10 Регистрация: 03.04.2011 Сообщений: 116 |
||||
28.10.2013, 21:45 |
2 |
|||
1 |
umc55555 14 / 14 / 7 Регистрация: 11.05.2013 Сообщений: 225 |
||||||||
28.10.2013, 22:45 [ТС] |
3 |
|||||||
Не получается.. При таком варианте не реагирует вообще.
При таком — выбрасывается исключение при загрузке «A first chance exception of type ‘System.Windows.Markup.XamlParseException’ occurred in PresentationFramework.dll
P. S. Изображения хранятся в одном словаре ресурсов, стили в другом. Может, имеет значение. Думаю, что обращаюсь к ресурсам из другого словаря неправильно, а как правильно — пока не знаю.
0 |
maratoss 65 / 49 / 10 Регистрация: 03.04.2011 Сообщений: 116 |
||||
29.10.2013, 21:45 |
4 |
|||
Еще заметил что если у кнопки задать Content, то как ты и написал — вообще никак не реагирует. Конкретно вот такой пример работает:
1 |
umc55555 14 / 14 / 7 Регистрация: 11.05.2013 Сообщений: 225 |
||||
04.11.2013, 14:20 [ТС] |
5 |
|||
Конкретно вот такой пример работает Ни фига у меня не работает, я попробовал ваш вариант и еще с десяток похожих вариаций.
Добавлено через 6 минут
0 |
maratoss 65 / 49 / 10 Регистрация: 03.04.2011 Сообщений: 116 |
||||
04.11.2013, 15:30 |
6 |
|||
Я же писал Еще заметил что если у кнопки задать Content, то как ты и написал — вообще никак не реагирует. Убери контент у кнопки.
0 |
umc55555 14 / 14 / 7 Регистрация: 11.05.2013 Сообщений: 225 |
||||
04.11.2013, 15:50 [ТС] |
7 |
|||
Убери контент у кнопки. Пробовал. Когда запускаю, в кнопке true показывается, но текст не меняется, если изменить IsEnabled на False.
+ если изображение в Content, то у кнопки исходный стиль остается. Если с ControlTemplate — кнопка целиком состоит из изображения. Я как раз пытаюсь сделать, чтобы кнопка состояла из изображения.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
04.11.2013, 15:50 |
Помогаю со студенческими работами здесь Значение IsEnabled в зависимости от контента Label Нужно во время выполнения приложения менять свойства IsEnabled TextBox’ов Перехватить изменение в ObservableCollection, связанной с твоим Control посредством свойства зависимости Изменение свойства source кнопки при наведении Изменение параметров изображения в зависимости от положения ползунка (Opencv) Изменение содержимого TreeView в зависимости от нажатой кнопки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 7 |
Итак, снова я пришел сюда, чтобы получить некоторые проблемы, которые я не могу решить самостоятельно, поэтому моя проблема заключается в том, что я получаю выполнение xamlparse при каждом загрузке стиля кнопки, внутри стиля у меня есть <прямоугольник>, который должен получить один цвет, определенный пользователем из запроса на моем MVVM. До сих пор не было никаких проблем, проблема заключается в том, чтобы придать этому цветовому значению значение grandientstop внутри LinearGradientBrush прямоугольника. Код xaml im использует:
<Rectangle x:Name="rectangle" Fill="{Binding Path=StrColor, Converter={StaticResource FadingBrushConverter}, RelativeSource={RelativeSource AncestorType={x:Type Rectangle}}}" HorizontalAlignment="Right" Height="70" Margin="0,0,0,0" RadiusY="5" RadiusX="5" VerticalAlignment="Bottom" Width="70">
<Rectangle.Effect>
<DropShadowEffect ShadowDepth="1" BlurRadius="8"/>
</Rectangle.Effect>
</Rectangle>
«StrColor» — свойство Color.
На моем MVVM у меня есть этот конвертер:
Public Class FadingBrushConverter
Implements IValueConverterPublic Function Convert(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
' TODO: Do some type-checking
Dim brush = New LinearGradientBrush()
Dim color = DirectCast(value, Color)
Dim Bcolor As System.Windows.Media.Color
Bcolor.R = 0
Bcolor.G = 0
Bcolor.B = 0brush.StartPoint = New Point(0.5, 0)
brush.EndPoint = New Point(0.5, 1.27)
brush.GradientStops.Add(New GradientStop(color, 0))
brush.GradientStops.Add(New GradientStop(Bcolor, 1))Return brush
End Function
Public Function ConvertBack(value As Object, targetType As System.Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
Throw New NotSupportedException()
End Function
End Class
Я действительно не знаю, что я делаю неправильно здесь, я смотрел в Интернете, но до сих пор мне не удавалось решить эту проблему!
Я также использовал DynamicResource, но без успеха!
Спасибо за любую помощь!
Aaron
asked on 30 Oct 2015, 09:51 PM
Hi,
I’m running VS 2015 in W10 (x64) with Telerik Reporting Q1 2015 SP1.
I’m developing a WPF application.
I’m getting the following XAML parse exception when attempting to show a Window containing a ReportViewer.
System.Windows.Markup.XamlParseException
Message: {«‘Provide value on ‘System.Windows.Markup.StaticResourceHolder’ threw an exception. Line number ’55’ and line position ’12’.»}
BaseUri: {pack://application:,,,/Assets/Themes/Windows8/Telerik.ReportViewer.Wpf.xaml}
InnerException:
Message: {«Cannot find resource named ‘Telerik.Windows.Controls.RadProgressBar’. Resource names are case sensitive.»}
StackTrace:
at System.Windows.StaticResourceExtension.ProvideValueInternal(IServiceProvider serviceProvider, Boolean allowDeferredReference)
at System.Windows.StaticResourceExtension.ProvideValue(IServiceProvider serviceProvider)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
The Click event handler for my «Generate Report» button is throwing the exception:
private
void
OnGenerateReportClick(
object
sender, RoutedEventArgs e)
{
EnhListReportViewerWindow elrvw =
new
EnhListReportViewerWindow()
elrvw.Show();
}
The exception is thrown on «elrvw.Show();».
My <Application.Resources> in App.xaml looks like this:
01.
<
runtime
>
02.
<
assemblyBinding
>
03.
<
dependentAssembly
>
04.
<
assemblyIdentity
name
=
"Telerik.Windows.Controls"
publicKeyToken
=
"5803cfa389c90ce7"
/>
05.
<
bindingRedirect
oldVersion
=
"0.0.0.0-2015.1.401.45"
newVersion
=
"2015.1.401.45"
/>
06.
</
dependentAssembly
>
07.
<
dependentAssembly
>
08.
<
assemblyIdentity
name
=
"Telerik.Windows.Controls.Input"
publicKeyToken
=
"5803cfa389c90ce7"
/>
09.
<
bindingRedirect
oldVersion
=
"0.0.0.0-2015.1.401.45"
newVersion
=
"2015.1.401.45"
/>
10.
</
dependentAssembly
>
11.
<
dependentAssembly
>
12.
<
assemblyIdentity
name
=
"Telerik.Windows.Controls.Navigation"
publicKeyToken
=
"5803cfa389c90ce7"
/>
13.
<
bindingRedirect
oldVersion
=
"0.0.0.0-2015.1.401.45"
newVersion
=
"2015.1.401.45"
/>
14.
</
dependentAssembly
>
15.
<
dependentAssembly
>
16.
<
assemblyIdentity
name
=
"Telerik.Windows.Data"
publicKeyToken
=
"5803cfa389c90ce7"
/>
17.
<
bindingRedirect
oldVersion
=
"0.0.0.0-2015.1.401.45"
newVersion
=
"2015.1.401.45"
/>
18.
</
dependentAssembly
>
19.
</
assemblyBinding
>
20.
</
runtime
>
The «Assets» folder is at the root of my project.
I have these Telerik assemblies (v4.0.30319) in my WPF project:
Telerik.Reporting (Q1 2015 SP1, 9.0.15.324)
Telerik.Reporting.XpsRendering (Q1 2015 SP1, 9.0.15.324)
Telerik.ReportViewer.Wpf (Q1 2015 SP1, 9.0.15.324)
Telerik.Windows.Controls (2015.1.401.45)
Telerik.Windows.Controls.Docking (2015.1.401.45)
Telerik.Windows.Controls.Input (2015.1.401.45)
Telerik.Windows.Controls.Navigation (2015.1.401.45)
Telerik.Windows.Data (2015.1.401.45)
My report library project is called «ConsoleReportLibrary». It has one report at the root: «EnhancementList.cs». ConsoleReportLibrary references Telerik.Reporting (9.0.15.324).
In the WPF project, my ReportViewer is declared in a Window like so:
<
tr:ReportViewer
Name
=
"ReportViewer1"
>
<
tr:ReportViewer.ReportSource
>
<
telerikReporting:TypeReportSource
TypeName
=
"ConsoleReportLibrary.EnhancementList, ConsoleReportLibrary"
/>
</
tr:ReportViewer.ReportSource
>
</
tr:ReportViewer
>
I have assembly redirects set up in App.config like so:
01.
<
runtime
>
02.
<
assemblyBinding
>
03.
<
dependentAssembly
>
04.
<
assemblyIdentity
name
=
"Telerik.Windows.Controls"
publicKeyToken
=
"5803cfa389c90ce7"
/>
05.
<
bindingRedirect
oldVersion
=
"0.0.0.0-2015.1.401.45"
newVersion
=
"2015.1.401.45"
/>
06.
</
dependentAssembly
>
07.
<
dependentAssembly
>
08.
<
assemblyIdentity
name
=
"Telerik.Windows.Controls.Input"
publicKeyToken
=
"5803cfa389c90ce7"
/>
09.
<
bindingRedirect
oldVersion
=
"0.0.0.0-2015.1.401.45"
newVersion
=
"2015.1.401.45"
/>
10.
</
dependentAssembly
>
11.
<
dependentAssembly
>
12.
<
assemblyIdentity
name
=
"Telerik.Windows.Controls.Navigation"
publicKeyToken
=
"5803cfa389c90ce7"
/>
13.
<
bindingRedirect
oldVersion
=
"0.0.0.0-2015.1.401.45"
newVersion
=
"2015.1.401.45"
/>
14.
</
dependentAssembly
>
15.
<
dependentAssembly
>
16.
<
assemblyIdentity
name
=
"Telerik.Windows.Data"
publicKeyToken
=
"5803cfa389c90ce7"
/>
17.
<
bindingRedirect
oldVersion
=
"0.0.0.0-2015.1.401.45"
newVersion
=
"2015.1.401.45"
/>
18.
</
dependentAssembly
>
19.
</
assemblyBinding
>
20.
</
runtime
>
The ReportViewer shows up in the designer with the Windows 8 theme, but something is going wrong at runtime. Guidance?
Thanks,
ADJ