<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.lhotka.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>CSLA .NET discussion</title><link>http://forums.lhotka.net/forums/5.aspx</link><description>General discussion about CSLA .NET</description><dc:language /><generator>CommunityServer 2008.5 SP3 (Build: 36.8414)</generator><item><title>Re: XAML Conditionally required Business Rules + UI warnings</title><link>http://forums.lhotka.net/forums/thread/52608.aspx</link><pubDate>Sun, 22 Apr 2012 23:22:50 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:52608</guid><dc:creator>jamie.clayton</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/52608.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=52608</wfw:commentRss><description>&lt;p&gt;&lt;blockquote&gt;&lt;div&gt;&lt;img src="http://forums.lhotka.net/Themes/hawaii/images/icon-quote.gif"&gt; &lt;strong&gt;JonnyBee:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;For XAML in CSLA 3.x you must set&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;CslaPropertyChangedMode = &amp;quot;Xaml&amp;quot;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color:#0000ff;"&gt;&lt;br /&gt;in app.config to make your app use the XAML property changed mode&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/p&gt;
&lt;p&gt;Jonny, &lt;/p&gt;
&lt;p&gt;Thanks for the information on *.config settings, I wasn&amp;#39;t aware, or forgot about page 314 of Rockies&lt;a href="http://books.google.com.au/books?id=9Mbx3Svoc1EC&amp;amp;pg=PA314&amp;amp;lpg=PA314&amp;amp;dq=PropertyChangedMode&amp;amp;source=bl&amp;amp;ots=dp2iUV5Vws&amp;amp;sig=AUSGWmQW-k3rmSjngNWufHvcMts&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ei=ZI-UT96bHvCziQfJ2Z3uAw&amp;amp;ved=0CDkQ6AEwAg#v=onepage&amp;amp;q=PropertyChangedMode&amp;amp;f=false"&gt; 2008 Csla book&lt;/a&gt; which&amp;nbsp;covers this setting.&amp;nbsp;This is going to be something I will need to manage as I move from a Hybrid Windows forms and WPF solution to exclusive WPF accross our customer&amp;#39;s software. I also removed the OnPropertyChanged code and yet again your correct about not needing it.&amp;nbsp; Will be refactoring some business objects to take advantage of this knowledge, cheers!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: XAML Conditionally required Business Rules + UI warnings</title><link>http://forums.lhotka.net/forums/thread/52603.aspx</link><pubDate>Sun, 22 Apr 2012 10:17:34 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:52603</guid><dc:creator>JonnyBee</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/52603.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=52603</wfw:commentRss><description>&lt;p&gt;Hi Jamie, &lt;/p&gt;
&lt;p&gt;You Rules is corrrect but the OnPropertyChanged override should not be required to make this work. &lt;/p&gt;
&lt;p&gt;I suspect that your app is using &amp;quot;Windows&amp;quot; as PropertyChangedMode.&lt;/p&gt;
&lt;p&gt;For XAML in CSLA 3.x you must set&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;CslaPropertyChangedMode = &amp;quot;Xaml&amp;quot;&lt;/span&gt;&lt;/strong&gt;&lt;span style="color:#0000ff;"&gt;&lt;br /&gt;in app.config to make your app use the XAML property changed mode. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color:#0000ff;"&gt;&lt;strong&gt;Windows &lt;/strong&gt;is default mode for all Csla 3.x. &lt;strong&gt;&lt;br /&gt;Xaml &lt;/strong&gt;is default mode for Csla 4.x&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This is the actual code in BusinessBase: &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:#0000ff;font-weight:bold;"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color:#a52a2a;"&gt;virtual&lt;/span&gt;&amp;nbsp;&lt;span style="color:#ff0000;"&gt;void&lt;/span&gt;&amp;nbsp;&lt;span style="color:#191970;font-weight:bold;"&gt;PropertyHasChanged&lt;/span&gt;(Csla.Core.IPropertyInfo property)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#191970;font-weight:bold;"&gt;MarkDirty&lt;/span&gt;(&lt;span style="color:#008b8b;font-weight:bold;"&gt;true&lt;/span&gt;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#000080;"&gt;var&lt;/span&gt;&amp;nbsp;propertyNames = BusinessRules.&lt;span style="color:#191970;font-weight:bold;"&gt;CheckRules&lt;/span&gt;(property);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;font-weight:bold;"&gt;if&lt;/span&gt;&amp;nbsp;(ApplicationContext.PropertyChangedMode == ApplicationContext.PropertyChangedModes.Windows)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#191970;font-weight:bold;"&gt;OnPropertyChanged&lt;/span&gt;(property);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;font-weight:bold;"&gt;else&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#0000ff;font-weight:bold;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color:#000080;"&gt;var&lt;/span&gt;&amp;nbsp;name&amp;nbsp;&lt;span style="color:#0000ff;font-weight:bold;"&gt;in&lt;/span&gt;&amp;nbsp;propertyNames)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#191970;font-weight:bold;"&gt;OnPropertyChanged&lt;/span&gt;(name);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;
&lt;p&gt;So when PropertyChangedMode is Windows the &amp;lt;BO&amp;gt; will only raise OnPropertyChanged for PrimaryProperty.&lt;br /&gt;But when PropertyChangedMode is Xaml the &amp;lt;BO&amp;gt; will raise OnPropertyChanged for all AffectedProperties and this should do the same work as your OnPropertyChanged override.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: XAML Conditionally required Business Rules + UI warnings</title><link>http://forums.lhotka.net/forums/thread/52602.aspx</link><pubDate>Sun, 22 Apr 2012 09:59:15 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:52602</guid><dc:creator>jamie.clayton</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/52602.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=52602</wfw:commentRss><description>&lt;p&gt;Did some searching in the Forum and tried a few techniques. Eventually found a solution. &lt;/p&gt;
&lt;pre style="font-family:Consolas;background:white;color:black;font-size:13px;"&gt;&lt;span style="color:blue;"&gt;&lt;pre style="font-family:Consolas;background:white;color:black;font-size:13px;"&gt;&lt;span style="color:green;"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;span style="color:green;"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;All&amp;nbsp;custom&amp;nbsp;rules&amp;nbsp;need&amp;nbsp;to&amp;nbsp;be&amp;nbsp;placed&amp;nbsp;in&amp;nbsp;this&amp;nbsp;method.&lt;/span&gt;
&lt;span style="color:green;"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;span style="color:green;"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;Returns&amp;gt;&lt;/span&gt;&lt;span style="color:green;"&gt;Return&amp;nbsp;true&amp;nbsp;to&amp;nbsp;override&amp;nbsp;the&amp;nbsp;generated&amp;nbsp;rules&amp;nbsp;If&amp;nbsp;false&amp;nbsp;generated&amp;nbsp;rules&amp;nbsp;will&amp;nbsp;be&amp;nbsp;run.&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/Returns&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;Protected&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Function&lt;/span&gt;&amp;nbsp;AddBusinessValidationRules()&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Boolean&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;We&amp;nbsp;want&amp;nbsp;the&amp;nbsp;UI&amp;nbsp;warnings&amp;nbsp;for&amp;nbsp;Report&amp;nbsp;outputs&amp;nbsp;types,&amp;nbsp;to&amp;nbsp;go&amp;nbsp;against&amp;nbsp;the&amp;nbsp;file&amp;nbsp;text&amp;nbsp;boxes,&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;so&amp;nbsp;we&amp;nbsp;are&amp;nbsp;taking&amp;nbsp;the&amp;nbsp;step&amp;nbsp;of&amp;nbsp;validating&amp;nbsp;against&amp;nbsp;the&amp;nbsp;file&amp;nbsp;path&amp;nbsp;fields&amp;nbsp;and&amp;nbsp;associating&amp;nbsp;the&amp;nbsp;two&amp;nbsp;properties&amp;nbsp;as&amp;nbsp;Dependant.&lt;/span&gt;
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ensure&amp;nbsp;that&amp;nbsp;a&amp;nbsp;PDF&amp;nbsp;file&amp;nbsp;path&amp;nbsp;is&amp;nbsp;supplied&amp;nbsp;if&amp;nbsp;the&amp;nbsp;users&amp;nbsp;selects&amp;nbsp;output&amp;nbsp;to&amp;nbsp;pdf.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;ValidationRules&lt;/span&gt;.AddRule(&lt;span style="color:blue;"&gt;Of&lt;/span&gt;&amp;nbsp;ReportDataFilter,&amp;nbsp;&lt;span style="color:#2b91af;"&gt;RuleArgs&lt;/span&gt;)(&lt;span style="color:blue;"&gt;AddressOf&lt;/span&gt;&amp;nbsp;ReportDataFilter.PdfFilePathSuppliedRule,&amp;nbsp;&lt;span style="color:blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;RuleArgs&lt;/span&gt;(PdfFilePathProperty))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;ValidationRules&lt;/span&gt;.AddDependentProperty(IsOutputToPDFProperty,&amp;nbsp;PdfFilePathProperty,&amp;nbsp;&lt;span style="color:blue;"&gt;True&lt;/span&gt;)
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;Ensure&amp;nbsp;that&amp;nbsp;a&amp;nbsp;Excel&amp;nbsp;file&amp;nbsp;path&amp;nbsp;is&amp;nbsp;supplied&amp;nbsp;if&amp;nbsp;the&amp;nbsp;users&amp;nbsp;selects&amp;nbsp;output&amp;nbsp;to&amp;nbsp;Excel.&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;ValidationRules&lt;/span&gt;.AddRule(&lt;span style="color:blue;"&gt;Of&lt;/span&gt;&amp;nbsp;ReportDataFilter,&amp;nbsp;&lt;span style="color:#2b91af;"&gt;RuleArgs&lt;/span&gt;)(&lt;span style="color:blue;"&gt;AddressOf&lt;/span&gt;&amp;nbsp;ReportDataFilter.ExcelFilePathSuppliedRule,&amp;nbsp;&lt;span style="color:blue;"&gt;New&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;RuleArgs&lt;/span&gt;(ExcelFilePathProperty))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;ValidationRules&lt;/span&gt;.AddDependentProperty(IsOutputToExcelProperty,&amp;nbsp;ExcelFilePathProperty,&amp;nbsp;&lt;span style="color:blue;"&gt;True&lt;/span&gt;)
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Return&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;False&lt;/span&gt;
&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-family:Consolas;background:white;color:black;font-size:13px;"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="font-family:Consolas;background:white;color:black;font-size:13px;"&gt;&lt;span style="color:blue;"&gt;&lt;pre style="font-family:Consolas;background:white;color:black;font-size:13px;"&gt;&lt;span style="color:green;"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;span style="color:green;"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;We&amp;nbsp;need&amp;nbsp;to&amp;nbsp;force&amp;nbsp;cross&amp;nbsp;checking&amp;nbsp;of&amp;nbsp;other&amp;nbsp;properties&amp;nbsp;as&amp;nbsp;they&amp;nbsp;are&amp;nbsp;dependent&amp;nbsp;properties&amp;nbsp;together.&lt;/span&gt;
&lt;span style="color:green;"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;span style="color:green;"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;param&amp;nbsp;name=&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;quot;propertyName&amp;quot;&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;span style="color:green;"&gt;&amp;#39;&amp;#39;&amp;#39;&amp;nbsp;&lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;remarks&amp;gt;&amp;lt;/remarks&amp;gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;Protected&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Overrides&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&amp;nbsp;OnPropertyChanged(&lt;span style="color:blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;propertyName&amp;nbsp;&lt;span style="color:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;String&lt;/span&gt;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;MyBase&lt;/span&gt;.OnPropertyChanged(propertyName)
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;Fake&amp;nbsp;the&amp;nbsp;editing&amp;nbsp;of&amp;nbsp;other&amp;nbsp;fields.&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:green;"&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;Works&amp;nbsp;in&amp;nbsp;combination&amp;nbsp;with&amp;nbsp;the&amp;nbsp;ValidationRules.AddDependentProperty&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Select&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Case&lt;/span&gt;&amp;nbsp;propertyName
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Case&lt;/span&gt;&amp;nbsp;IsOutputToPDFProperty.Name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OnPropertyChanged(PdfFilePathProperty.Name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;Case&lt;/span&gt;&amp;nbsp;IsOutputToExcelProperty.Name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;OnPropertyChanged(ExcelFilePathProperty.Name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Select&lt;/span&gt;
 
&lt;span style="color:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="color:blue;"&gt;Sub&lt;/span&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>XAML Conditionally required Business Rules + UI warnings</title><link>http://forums.lhotka.net/forums/thread/52601.aspx</link><pubDate>Sun, 22 Apr 2012 09:22:38 GMT</pubDate><guid isPermaLink="false">49a2225a-bd1e-4c5d-a665-720b81e87ca9:52601</guid><dc:creator>jamie.clayton</dc:creator><slash:comments>0</slash:comments><comments>http://forums.lhotka.net/forums/thread/52601.aspx</comments><wfw:commentRss>http://forums.lhotka.net/forums/commentrss.aspx?SectionID=5&amp;PostID=52601</wfw:commentRss><description>&lt;p&gt;G&amp;#39;day,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m having a senior moment with XAML and CSLA business rules displaying optionally required fields in WPF at the moment. Can someone please put me out of my misery?&lt;/p&gt;
&lt;p&gt;I have a simple business Rule like like the following, so if a user selected the report format should be PDF, there is a conditional requirement to also supply the file path and name of file for that report.&lt;/p&gt;
&lt;pre style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:13px;"&gt;&lt;span style="COLOR:blue;"&gt;Private&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;Shared&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;Function&lt;/span&gt;&amp;nbsp;PdfFilePathSuppliedRule(&lt;span style="COLOR:blue;"&gt;Of&lt;/span&gt;&amp;nbsp;T&amp;nbsp;&lt;span style="COLOR:blue;"&gt;As&lt;/span&gt;&amp;nbsp;ReportDataFilter)&lt;br /&gt;(&lt;span style="COLOR:blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;target&amp;nbsp;&lt;span style="COLOR:blue;"&gt;As&lt;/span&gt;&amp;nbsp;T,&amp;nbsp;&lt;span style="COLOR:blue;"&gt;ByVal&lt;/span&gt;&amp;nbsp;e&amp;nbsp;&lt;span style="COLOR:blue;"&gt;As&lt;/span&gt;&amp;nbsp;Validation.&lt;span style="COLOR:#2b91af;"&gt;RuleArgs&lt;/span&gt;)&amp;nbsp;&lt;span style="COLOR:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;Boolean&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;Dim&lt;/span&gt;&amp;nbsp;result&amp;nbsp;&lt;span style="COLOR:blue;"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;Boolean&lt;/span&gt;&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR:blue;"&gt;True&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;If&lt;/span&gt;&amp;nbsp;target.IsOutputToPDF&amp;nbsp;&lt;span style="COLOR:blue;"&gt;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;If&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;String&lt;/span&gt;.IsNullOrWhiteSpace(target.PdfFilePath)&amp;nbsp;&lt;span style="COLOR:blue;"&gt;Then&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;result&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR:blue;"&gt;False&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.Description&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Must&amp;nbsp;supply&amp;nbsp;a&amp;nbsp;location&amp;nbsp;and&amp;nbsp;file&amp;nbsp;name&amp;nbsp;&lt;br /&gt;                             for&amp;nbsp;the&amp;nbsp;PDF&amp;nbsp;report&amp;nbsp;output.&amp;quot;&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;If&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;If&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;Return&lt;/span&gt;&amp;nbsp;result
&lt;span style="COLOR:blue;"&gt;End&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;Function&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;So the XAML UI should, in my mind do the following.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;User Clickes on Checkbox - Output to PDF.&lt;/li&gt;
&lt;li&gt;PDF file path text box should now highlight as a required field, with the standard red boarder.&lt;/li&gt;
&lt;li&gt;User see&amp;#39;s red and supplies file path.&lt;/li&gt;
&lt;li&gt;Report can be generated.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;So I apply this logic and ensure that the property change also triggers the business rules to run from both properties and they are implicitly related via this business rule. The UI just never updates the conditionally required text box when the check box property changes. All the events fire as expected when I debug through this code. It looks like the UI warnings only change if the matching property changes.&lt;/p&gt;
&lt;p&gt;I then start to review what&amp;#39;s going on in&amp;nbsp;the CSLA core code for Csla.Wpf.PropertyStatus in (3.8.4). It implies&amp;nbsp;the only way you can force the second property to display the broken rule to the user&amp;nbsp;is to&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Force a change in the value of the PdfFilePath property and then instantly undo it.&lt;/li&gt;
&lt;li&gt;Disconnect and then reconnect the XAML framework object to the CSLA BO property.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This all sounds a little complicated, or my reading of C# might be incorrect, usually indicating I&amp;#39;ve stuffed up somewhere.&amp;nbsp; Is there a CSLA method call I&amp;#39;ve missed,&amp;nbsp;that can help me resolve this UI business rule issue in WPF?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>